Pokud jde o MySQL, je třeba použít tabulky typu InnoDB. Ty kromě toho že mají vyšší výkon podporují na rozdíl od defaultního MyISAM i zmiňované cizí klíče (foreign key). No a nebylo by od věci proměřit i MySQL 5.0, když už je teď final (a v době testů bylo ve fázi posledních příprav na final, podobně jako PostgreSQL 8.1). Bez InnoDB tohle testování nevypovídá o plných schopnostech MySQL - to je asi jako kdybyste měřili maximální rychlost auta a nezařadili víc než dvojku...
MyISAM je rychlejší pouze v základních případech. Na komplikovanější dotazy, a obzvlášť na paralelní přístup k datům pro více klientů najednou, je podstatně rychlejší InnoDB.
Nikoli, InnoDB je mnohem rychlejší, a to už i na malých databázích a při používání základních věcí. Zjistil jsem, že klasickou metodou, jak brutálně zrychlit běžnou MySQL databázi je převést prostě tabulky z MyISAM do InnoDB.
Já se přiznám rovnou bez obalu, že jsem netestoval elementární akce typu rychlost INSERTu. Prostě jsem u několika databází různých velikostí a různě složité datové struktury pokusně zkusil switchnout tabulky z MyISAM na InnoDB. Výkonnostní nárůst mě opravdu překvapil. Co mě překvapilo ještě více byl fakt, že po přečtení několika stránek v manuálu MySQL ohledně InnoDb a vyladění konfiguračních parametrů MySQL plus některé drobné změny ve struktuře databáze znamenaly další výrazné urychlení práce s tabulkami InnoDb oproti MyISAM.
Přikládám to tomu, že InnoDB je mnohem lépe vymyšleno a pokud vím, tak InnoDB není dílem firmy, která programuje MySQL. Mám dokonce dojem, že společnost, která vyvíjela InnoDB koupil teď někdy Oracle a bude pokračovat ve vývoji on.
no je pravda, ze jsem pouzival autocommit, kdyz jsem si s tim chvili hral, tak jsem se dostal pod myisam docela rychle, takze asi mate pravdu (cimz vznika otazka smyslu existence myisam)
ano, innobase byla koupena Oraclem (viz tiskova zprava: http://www.oracle.com/corporate/press/2005_oct/inno.html ) -- predpokladam, ze mysql maji dostatecne kvalitni smlouvu, aby v pripade neochoty oraclu pokracovat mohli udelat vlastni fork
MyISAM je rychlejsi v pripade, ze se z tabulky prevazne selectuje. InnoDB (krome toho ze podporuje FOREIGN KEY pro zavedeni relaci) je rychlejsi u tabulek, do kterych se prevazne insertuje a updatuje v nich (protoze nezamyka celou tabulku, ale jen aktualni radek). Prakticky jsem to vyzkousel u sebe a pokud jsou tabulky typu MyISAM, web lita rychleji a zatez serveru je pres cely dan stabilnich cca 10%. Zmenil jsem tabulky na InnoDB a web je znatelne pomalejsi a zatez serveru je 20%. Poznal jsem to hlavne v tabulce, kde je 1 200 000 zaznamu, co zaznam jedno bezne slovo do 10ti znaku. Nad touto tabulkou se provadi select name='slovo' a potom group by (polozka_id). Toto bylo z MyISAM tabulky hotove za 0.1 vteriny a tedka s InnoDB ten stejny dotaz, jen jiny typ tabulky trva 1.5vteriny. Jeste budu testovat Firebird, jak si s timto poradi.