AFAIK donedávna byl PostgreSQL považován za nejlepší free databázi, nicméně v poslední době se prý dost zlepšilo MySQL, ojevil se Firebird a ta věc od SAPu, takže se táži, je dnes nějaká z alternativ lepší volba než PostgreSQL? Je o tolik lepší, že by to ospravedlnilo migraci? Jde mi spíše o serverové nasazení, z toho důvody pro mě např MS Access není databáze.
Ja si nejsem moc jisty v cem se MySQL zlepsilo. Nedavno jsem si ji opet nainstalovat a velmi jsem zajasal kdyz jsem v manualu zahledl sluvka jako Stored Procedure a View. Opet jsem byl znechucen, jelikoz to pouze slibovali do dalsi verze. Myslim si, ze dokud MySQL nebude toto podporovat, tak se s tim moc poradnych projektu delat neda. Ted je to vicemene jednoucelova zalezitost, napr. cteni z katalogu (a i to musi byt mazec v tom vyvijet) ...
Jasne, ted se tady na me nahrnou priznivci MySQL a budou argumentovat tim, ze napr. Centrum to pouzivat atd. Jasne, souhlasim, ale pokud budu chtit cast logiky presunout na db server, tak se u MySQL asi moc nezadari.
Velmi se mi, ale zacina libit FireBird, jelikoz ma vse co potrebuji - SP, view, triggers ... Bohuzel jsem nemel jeste prilezitost ji poradne odskouset a zajimalo by me jak je na tom z hlediska vykonu. Nemate nekdo zkusenosti?
MySQL je podle me dobre tak akorat pro web. Rozumne se s tim pracovat neda - view, case, select from select ..... to jsou naproste zaklady, bez nichz se neda seriozne pracovat. Firebird je super, akorat mam vzdy problem s instalaci pod windows.... pokud je tam instalator je to v pohode, ale upgrade ze zip balicku se mi nikdy nepovedlo :-)
Přesně!
Jak ukázaly naše firemní testy, ve vybírání dat nemá MySQL konkurenci (možná dobře nastavený Oracle). Umožňuje si předem setřídit data, aby se pak nemusely pokaždé třídit. Zkrátka a dobře - na webové informační systémy či vyhledávače to je volba no. 1.
Jakmile ale začnete data měnit, z MySQL se stává věc, která spolehlivě chodí na malých aplikacích pro malé pracovní skupiny. Já sám jsem nad MySQL postavil firemní informační systém, který provozují zatím dva uživatelé. Víc od ní nemůžete čekat.
Je to ale skvělé, že tu MySQL je. Perfektně doplňuje nabídku. Toť můj názor.
S tím se dá jen souhlasit. Nejen vybírání, ale i nahrnutí dat co do rychlosti v MySQL nemá konkurenci. (Jen bych doplnil, ža ani když přijely odborníci od O?????, I?? i M? {nesmíme jmenovat} a ladili to přímo u nás, tak nedokázali na stejném HW tento inteligentní fs překonat.) Je to holt tak, když chcete data rychle nalít, rychle je indexovat a pak je rychle číst a tyto operace si sami ošéfujete, tak jsme nic lepšího než MySQL nenašli nejen mezi open, ale ani close. Pokud od toho nečekáte zajištění datové integrity, SP, Triggery a pod. je MySQL dobrá volba. Bavíme se řádově 100GB, miliónech záznamů a desítky klíčů na agregaci 1:10 - 1:10000 cca. Ale "účetnictví bych na tom nepostavil". To je o něčem jiném. Volba mezi Postgres a Firebird je těžká a každé má něco do sebe.
Ciste teoreticky:
1/ Vezmu system, ktery neobsahuje nejake feature a je vyladeny na max vykon delat to co chci (nepotrebuji ony feature!).
2/ Ted si vezmu nejaky jiny system, ktery tyto feature obsahuje a je vyladen jakkoli. Musi tedy obsahovat napr datove struktury, ktere ja nepotrebuji. Tyto datove struktury s vysokou pravdepodobnosti ukladaji na disk a pri jejich cteni to musi projit pres diskovou cache, pres datovy kanal, nacpat do pameti (tam na to hodim bobka). Code obsahuje nejaky kusy kodu, ktery se neprovadi, ale zavazy v pameti. Nejakej kod co musi poznat, ze tenhle zbytecnej kod se nemusi provadet a tem mi tam zase zavazi a navic se provadi. Atd, atd, atd ...
A ted mi ciste teoreticky reknete, jestli je sance ze system 2/ bude "BEZKONKURENCNE (nej)rychlejsi" nez system 1/ pri provadeni ukolu na ktery !nepotrebuji! feature, ktere ma system 2/. Myslim, ze to je ciste teoreticky nemozne. Az mi to predvedete v praxi, tak se vam pokusim uverit, ale potom nejspis skoncim v blazinci, protoze to mi mozek nebere a nabouralo by mi to zakladni paradigmata.
P.S.: Vsimete si prosim, ze ja opravdu netvrdim, ze MySQL je nejrychlejsi, nejlepsi, nebo jina databaze. Ja jen tvrdim, ze na urcitou mnozinu uloh je BEZKONKURENCNE (nej)rychlejsi (a to radove :) nez databaze, ktere toho umi vic (o CACHÉ jsem dost slysel a mozne je vsechno) a IMHO je to zpusobeno mimo jine tim, ze proste ty vlastnosti nema, neuklada zbytecna data, neprovadi zbytecny kod atd, atd, atd ...
MySQL je databaze, ktera vznikla jako ocesana prave od tech vlastnosti, ktere zdrzuji nejvice. MySQL ma sve urceni a misto, a zvlada velke zateze, pokud ji pouzijete na to, na co je stavena.
Ja si proste myslim, ze to vubec nebyl spatny napad takovou databazi postavit. Myslim si, ze nejvetsi problemy u MySQL jsou tyto:
1) Její licence.
2) Lidé, kteří se jí snaží porovnávat s jinými databázemi.
Já si nejsem u FireBirdu příliš jistý, jak moc dobře pracuje při větším množství současně pracujících klientů. Určité provedené soukromé testy o tom nehovoří moc lichotivě.
Navíc znám jednu firmu, která zkoušela na Interbase aplikaci s 50 klienty s poměrně malou zátěží od každého klienta, a Interbase prý už docela selhávala. Nakonec se vydal po zkušenostech vnitřní zákaz používání Interbase databáze.
Otázkou také je, jak moc dobře zvládá klient u Intebase/Firebird multithreading...
Osobně mám s tím zkušenosti docela dobré. Musíte si pouze dobře rozmyslet, jak zvolit u jednotlivých klientů isolation level (v závislosti na způsobu využití). Pokud například necháte defaultní nastavení z Delphi/C++ Builderu, je to taková "sázka na jistotu", ale z hlediska efektivity při větší konkurenci nic moc. Také pomáhá používat pro ty akce, které nic nezapisují, read only transakce.
Určité problémy s velkým počtem klientů mohou být u varianty SuperServer (více vláken, jeden proces), ale rozhodně nevznikají u varianty Classic Server (více procesů, jako u PostgreSQL). Classic ovšem není k dispozici na Windows, ale pouze na Unixech. Borland bohužel (nebo naštěstí?) ukončil vývoj verze Classic, a nadále se věnuje jen Super Serveru. To přivedlo řadu velkých zákazníků Borlandu k Firebirdu, který od verze 1.5 nabízí Classic rovněž pod Win32.
Mimochodem, na Unixech je Classic server v lokálním připojení vlastně embedded server (server ve sdílené knihovně, přimo připojovaný k aplikaci). Síťově to jede přes inetd/xinetd. Classic na Win32 je jen síťový, pro lokální použití je nový Embedded server. ten ovšem vychází z architektury Super Server :-)
No ja jsem pouzival Interbase nevim jake verze na novellu s klienty psanymi v delphi 1.0 a chodilo to naprosto bozsky. Meli jsme 50 licenci, tenkrat byly asi po 3000 Kc. Tusim to nikdy nebezelo na plny pocet licenci (ony se stejne nepocitaly) ale tech 40 klientu tam bylo a nemel jsem pocit, ze bych se blizil limitu. Navic to meli s novellem skvele provazane, takze se pouzivaly interni transakce filesystemu. Nezapisovalo se do toho hlavniho souboru, ale do WAL logu a ty se pak prenasely na hlavni databazi.
Mozna mel nekdo problemy s win verzi, ale to mohlo byt klidne systemem a ne Interbaskou. Jedine co me privadelo k silenstvi bylo, ze jejich isql neni linkovane s libreadline. Jenze to neni ani oracle a co hur, isql to neumelo v roce 93, oracle to neumi dneska.
Klient isql z Firebird 1.5 (zkoušel jsem RC4) umí historii a editaci příkazové řádky, narazil jsem jen na dva problémy (možná za ně nemůže isql ale já). První je zobrazení znaků s diakritikou (fungují, ale zobrazuje se jako 'M-a' apod.), možná mu lze nějak říct, jaká je znaková sada, jen jsem to zatím nenašel (resp. nehledal). Pak jsem měl také problémy s editací, pokud je řádek delší než řádek terminálu (editace funguje, ale zobrazení je opět poněkud podivné).
Člověk vnímá databázi celkem jako celek se systémem. Když hodnotím FB/IB spolu s Windows, tak jí tak hodnotím.
Novell je pro mě mrtvola. Měl jsem tu čest sem tam něco naprogramovat jako modul pro Novell. To, člověk pak velmi rychle pochopí, proč Novell slouží hlavně jako fileserver, a skutečných aplikací je pro Novell pomálu. Ne, velmi si přeji už nic s Novellem nemít společného, jako fileserver a printserver možná, ale nic víc.
Prostě pokud databáze nepracuje dobře na systému, o který se jedná, není to pro mě a pro můj účel vhodná databáze.
MySQL bude perfektni - ve verzi 5. Hral jsem si s ni a vypadala vazne skvele. Ale zatim ji chybi tak cca 2 roky. Firebird je malej, hezkej a pro Borlandisty jako delanej. PostgreSQL stale chybi nativni verze pro win, dvoufazovy commit, zachytavani vyjimek v plpgsql, replikace. Ale vsechno ostatni ma dotazenejsi nez konkurence, tj. mysql a firebird. Ve 7.4 i znatelne zrychlila. Takze asi tak :->. Dokonce i MySQL ma lepsi dokumentaci nez Firebird, a to je co rict. Kdyz mne tak napada, tak asi dokumentace je nejvetsi minus Fb. Rychlostne je PostgreSQL a Firebird zhruba na tom stejne, pouzivaji stejnou architekturu.
Pro replikaci PostgreSQL nedavno neco vyslo, viz. http://www.postgresql.org/news/147.html , multithreadovou verzi pro win taky nekdo dela, ale uz to neni free, verze pod Cygwinem mi finguje v pohode, na zatez sem to netestoval, jinak PostgreSQL neni myslena jako osobni databaze, takze nedostupnost win verze neni az tak kriticka, Jnak ten Firebird zachytavani vyjimek v PLSQL a dvoufazovy commit ma?