Par chyb a nedostatku
1) Neuvadite verze MySQL a FireBirdu (mezi 1.0, 1.5 a 2.0 jsou jiste vykonostni problemy)
2) Na import dat do Firebirda existuji nastroje, popripade primy pristup k radku db (hodne to urychluje).
3) Provest test nad nevyvazenymi indexy (postupne mazat a pridavat zaznamy, az se indexy rozbiji), mozna Firebird strati dech.
4) Provest test nad hodne menenou databazi (Firebird, zaznamy nemaze, ani neupravuje, vzdy vytvori novy a i se zmenou, takze se zaznamy postupne hromadi).
5) Provest test rychlosti s primym pristupem k tabulkam.
6) Provest test rychlosti, alespon s nejakymi agregacemi (alespon zakladnimi).
7) Otestovat rychlost advancet technologii: vnorenych selectu, kurzoru, pohledu, uloznych procedur, spojovani tabulek s vytvorenymi cizimy klicema.
Je mi jasne, ze autor se snazil provest testy kompletni, ale bohuzel neni. Jsem presvedcen, ze nap. pri vyuziti FK (Foreign Key), by PostgrSQL dosahl vyrzne lepsich vysledku nez MySQL (ktery je nemaji).
P.S.: Free nastroje na udrzbu FireBirda najdete primo na http://firebird.sourceforge.net/. FlameRobin a IBExpert. (Vetsina nastroju pro InterBase funguje i pro FireBird).
presne tak proc se testuje pgsql 8.1 beta ale beta (dnes uz i RC) MySQL 5 je ignorovana.
jinak ten benchmark je fakt o nicem - testovat vykonnost by to chtelo tak na inner/left joinech aspon 20 tabulek kde kazda tabulka ma aspon 5k radku - proste takove minimalni bezne zatizeni vetsi aplikace.
delat benchmark pro mini aplikace a mini DB nema smysl.
navic benchmark delany pomoci PHP se mi nelibi - zavisi hodne na rychlosti extension pro danou DB - chtelo by to benchmark primo z konzoli danych DB. navic by taky neskodilo porovnani proti oracle a mssql ;)
ja nevim co Ti/Vam na tom zda divneho. nase hlavni firemni aplikace obsahuje neco pres 100 tabulek a pri dotazech do ni je to bezne join aspon 10 tabulek aby clovek dostal to co potrebuje takze mi na tom nic divneho neprijde - precijenom neni to blbej pubertalni chat ;)
Presne tak, pokud je projekt velkej, musi se tabulky spojovat, jinak by to bylo zatracene neefektivni ukladani.. Jeho vykrik mi pripada jako vykrik u cloveka co delal akorat DB na svuj web v mysql a dal to do jedny tabulky, ale treba se pletu.. :)
Otazkou je, zda ma smysl hledet pri dnesnich velikostech HDD na nejakou efektivitu ukladani nebo na to, aby select probehl co nejdrive. Osobne preferuji druhou moznost, protoze zakaznika absolutne nezajima, jak jsou udelana streva, ale jak se cela aplikace chova a 'vo tom to je' ;)
to je pekne ale skusal si taky projekt expandovat o nove funkcie a zdroje dat? asi nie. V kancli sedim este z kamosom kazdy mame ini pristup ja mam vecsie mnozstvo tabuliek viacmenej mam tabulky na co najmensie casty a vsetko poprepajane klucmy. kamos robi co najvedsie tabulky aby to mal hned.
ja mam aplykaciu ktoru robim stale komplexnejsiu nad jednou DB a on je vdaka nie najlepsiemu navrhu buduje stale nove a nove DB a aplykacie mu chodia do viacerych DB naraz a z kazdej potom vytahuje z 20 stlpcovej tabulky 3 stlpce alwebo ma cast zaznamov duplicitnych v roznych DB fakt radost nieco nove dorobit.
troska vela roboty na DB kde mavame maximalne stovky zaznamov.
Svojho casu som skusal rychlost PostgreSQL 8 a firebirda 1.5.2. Mal som tabulku, cca 90000 zaznamov + vytvoreny view s troma agregaciami (nejake county). Potom som robil selecty na tomto pohlade, ale zotriedene podla tych agregacii (take boli poziadavky) Na mojom pocitaci trval jeden select na PostgreSQL cca 22 sekund, kym na Firebirde asi 4-5. Takze je tam rozdiel. A velky.
Na druhej strane vie PostgreSQL veci, ktore Firebird nie (minimalne vo verzi 1.5.2). Napr. inline view.
Problem bude mozna v tom, ze postgres neprovadi optimalizaci agregacnich funkci (existuje jeden rozsiritelny framework, ktery je pouzit i pro count()). Nektere databaze count dovedou optimalizovat (pomoci indexu a pod).
Mozna ze by vysledky vypadaly uplne jinak u jine agregacni funkce ... ale to v realne aplikaci moc nepomuze ;-)
Provest test nad nevyvazenymi indexy (postupne mazat a pridavat zaznamy, az se indexy rozbiji), mozna Firebird strati dech.
To ale odpovídá běžnému nasazení, ne? Málokdo neustále reindexuje celou databázi.
no pokial mas v DB zaznamy z radiusu tak napr v postgreSQL je VACUUM a ANALYZE to prve co das do cronu a minimalne raz tyzdenne (velmy maly provider) inak ti zacnu casy odpovedy z DB ras exponencialne.
hmm, pocul ste niekedy o transakciach?
tento pristup pouziva i postgresql, ono sa vam totiz moze stat, v jednom okamihu moze mat kazda transakcia svoju vlastnu kopiu riadku (ci az vsetkych riadkov) danej tabulky. (a to je vlastne hlavny dovod, preco existuje vacuum)
btw, ako je na tom emulator databazy (mysql) v pripade, ze tabulka je vacsia ako velkost pamate? este stale ma problemy?
mal som nasadene mysql a vzdy, ked velkost tabulky presiahla velkost fyzickej pamate, CPU slo na 99% a niekolko sekundove requesty. pridanim pamate sa problem vyriesil.
nakoniec som premigroval na postgresql, tabulka ma momentalne 20GB a server ani nevie, ze nejake selekty robim.
a co sa tyka mssql, nasiel som uplatnenie aj pren, skutocne vyborna podlozka pod hrncek s cajom :-)))
Este jednu o cervenej ciapocke. Tazko zvalovat chybu v konfiguracii, ci navrhu databazy na mysql.
Nemam najmensi problem ani s 14GB databazou na 512MB / 4xPentiumPro200MHz.
hmm, nevravim o databaze, ale o tabulke.
je pravda, bolo to pred 4-mi rokmi, bolo to myisam.
a chyba navrhu?
ak jeden navrh sposobi zablokovanie stroja pri mysql a postgresql nie, chyba bude inde. nebol to jediny system, kde som sa s podobnou situaciou stretol (a pravda, stretol som sa aj s tym, ze to nezablokovalo). ci to bolo indexami alebo strukturou dat, nezistoval som.
poviem to asi takto ... ak niekto odomna chce mysql, nasleduje odhovaranie, ak je neuspesne, tak zdvojnasobenie sumy s podpisom dohody o vzdani sa naroku na zaruku
Já se přiznám, že za léta používání MySQL jsem se s ničím podobným nesetkal. Já koukám na MySQL jako na hloupoučkou, ořezanou databázi, která je ale spolehlivá, multiplatformní, dobře pracuje s thready a je dobře zdokumentovaná. Ještě nikdy se mi nestalo, že by mi MySQL udělala nějaký skutečný průšvih. Pravda je, že raději dělám s lépe vybavenými databázemi, než je MySQL, ale často jsem nucen na nich něco postavit.
Žádná databáze nebude úplně bez vroubku. Stačí si přečíst libovolný seznam chyb k libovolné databázi, pokud je tedy vývojáři zveřejňují. Nicméně myslím si, že hlavní problém bude v tom, že "nezistoval som", kde je problém. Na 99% bývá problém mezi klávesnicí a židlí, spíše, než v databázi.
Ona každá databáze chce svoje a chce trochu péči. Když mě teď posadíte k PostgreSQL, se kterou jsem skoro nikdy nedělal, tak vám pravděpodobně udělám podobná zvěrstva a bez dostatku sebereflexe dojdu k závěru, že PostgreSQL je neschopná databáze a budu od zákazníků vyžadovat zdvojnásobení sumy a vzdání se nároku na záruku.
No nemate tak zcela pravdu. To ze ruzne databaze zvladaji ruznou zatez ruzne, je preci jasne. Musite se prispusobit. Teoreticky jde sice ten samy SQL dotaz nasadit na vice databazi, ale prakticky je vhodnejsi upravit konstrukci pro kazdy dany db stroj.
Jinak s tim nerucenim za MySQL s Vami souhlasim. MySQL nezvlada omezeni, ani FK ani trigery. Pak se spatne zajistuje konzistence dat. (Tedy nevim jak verze 5, jestli tohle jiz zvlada)
Add. MsSQL, musim rict, ze mne svou rychlosti velmi prijemne prekvapila. Ale nerozhodl bych se pro ni, existuji databaze zadarmo a pokud potrebuji opravdu dobry vykon, pak jedine Oracle.
Souhlasím s tím, že MySQL toho umí dost málo, a že se daleko lépe dělá s mnohými jinými databázemi. Nicméně FK bez problémů zvládají už hodně staré verze řadu let nazpátek.
Z pozice vyvojare bych MsSQL vytkl jednu podstatnou vec a sice naprosto mizerny JDBC ovladac, navic dokumentace k nemu mi pripada jako by reflektovala zcela jiny produkt. Nastesti mame jTDS...
Upresnenie - ja som sice vravel o 14GB DB, ale pozrel som si prave aktualny stav. Velkost DB : 15.5GB a najvacsia tabulka je 76mil. zaznamov = 14GB data + 1GB indexy :-)
Heh, borec co si nevie ani len MySQL nainstalovat, nakonfigurovat a spravne pouzivat. Zaujimave, ze vsetkym to spolahlivo funguje, len jeden expert musi odhovarat a vymyslat dohody o vzdani sa zaruky :))
Doporucit klientovi Oracle bude to spravne riesenie. Za licenciu zaplati $40k a za aplikaciu $4k. Tomu hovorim "deal"! :-)
Robim na jednej aplikacii kde zakaznik (stat) plati Oraclu (DB, Cluster DB, AS) 3M SKK rocne za upgrade a za support (celkovo stali licencie cca 20M). V tomto pripade by bol MySQL lepsi.
nemyslim si ;) - MySQL rozhodne neni stavene na velke projekty, uz prave treba absenci Stored Procedur, nebo chybejicimi views (ve starsich verzich) nebo parametrickych views (v 5.0).
jako proti oraclu je mysql 'sracka' kterou bych si na projekt nevzal - jestlize mate spravovat distribuovanej system DB ktere se replikuji z centralni DB pro celou republiku a DB ma klidne pres 30GB tak proste MySQL nema sanci ani kdyby se na hlavu stavela.
Nevies rozlisit medzi rozsiahlostou a druhom projektu a tym, ci na to chces pouzit Oracle alebo MySQL. Niekto skratka nepotrebuje Oracle na fungovanie na projektoch, ktore su mensie nez tvoj distribuovany system replikovanych databaz pre celu republiku. Mozno tam MySQL nema sancu, mozno ale na niecom mensom vie byt MySQL so svojim features vhodnejsi kandidat nez Oracle. Tvoj pristup je stylom, kupim si dvojliter auto, jazdim s nim z prace a do prace, ved ta jednadvojka je o hovne, to nema 2 litre! Absolutne neefektivne pouzitie v danom pripade. Neber teda ze Oracle je vseliek najlepsi na vsetko, su nasadenia, kde proste je zbytocny. Lenze ty si a priori zaujaty. Skoda. Preto mozno pri svojich projektoch a Oracloch castokrat prehajdakas vagon penazi, lebo proste nie si schopny najst ine, efektivnejsie riesenie, lepsie aplikovatelne na danu situaciu.
Ak sa mylim, tak ma oprav prosim. A prepac, ze som sklzol troska do osobnejsej roviny a jemne mimo temu debaty :). Len ma unavuju bitky medzi Oracle vs MySQL, Linux vs Windows a podobne.
lol fetujes? ... keby si nenapisal tu zatvorku, mozno by som sa k tvojmu nazoru priklonil.
ale uvedom si, ze ak v takejto aplikacii presadis nieco ine, tak vsetko co padne, padne na tvoju hlavu.
v tomto pripade je otazka, ci ten oracle je nutny (resp, ci to nie je kanon na vrabce). ale tvrdit ze mysql sa na takejto urovni dokaze co i len pozriet na oracle, to uz hranici s fanatizmom.