Portál AbcLinuxu, 2. listopadu 2025 23:17
Řešení dotazu:
Pokud databázi degraduji na KVSTakovou degradaci si snad nezaslouží ani MySQL :).
)
3. MVCC architektura škáluje jinak než architektura MyISAM a tak pro webové aplikace nemají moc smysl dělat jednouživatelské testy. Dál hodně závisí na tom, co se zrovna kterýmu enginu vejde a nevejde do paměti atd.., takže při různý velikosti dat můžou vyjít různý výsledky.... obecnej závěr těžko udělat. Např.
http://translate.google.cz/translate?hl=cs&sl=ru&u=http://laziness-impatience-hubris.blogspot.com/2012/05/postgresql-mysql-and-mariadb-as-key.html&prev=/search%3Fq%3Dpostgresql%2Bmysql%2B%2522key%2Bvalue%2522%2Bbenchmark%26hl%3Dcs%26client%3Dfirefox-a%26hs%3DsFW%26rls%3Dorg.mozilla:en-US:official%26biw%3D1400%26bih%3D725%26prmd%3Dimvns&sa=X&ei=iG_5T72jAa2N4gT_oPjBBg&ved=0CHoQ7gEwCA
Osobně jsem došel k závěru jak svejma testama, tak i z pročítání testů ostatních, že výsledky u dobře zkonfigurovanejch databází se nelišej tolik, aby stálo za to je brát jako argument pro použití té které db, a u blbě zkonfigurovanejch o tom nemá smysl přemejšlet. Daleko větší rozdíl než hrubej výkon ideálně nakonfigurovaný db je v tom, zdali ji člověk umí nakonfigurovat a používat (vyvarovat se typů dotazů, které daný engine umí špatně).
V triviálním select testu MySQL zvítěží, jelikož má (na rozdíl od ostatních), cache dotazů (dotaz nemusí projít přes generátor plánu, výběr plánu a exekutor) a vrátí se z cache. Při běžném read write nasazení však tato cache ztrácí na významu.
Ve složitějších dotazech a větším počtu současně připojených klientů PostgreSQL zvítězí. PostgreSQL toho též nabízí daleko víc, lze psát i vlastní rozšíření, vytvářet vlastní datové typy. PostgreSQL je ta pravá SQL databáze s ohledem na SQL normy. MySQL bohužel na ISAM naučí, jak věci nedělat.
PG je mnohem jednodušší na nastavení. U MySQL je třeba myslet na různé engine, různé levely cache apod. PostgreSQL všechno (po vzoru unixových pravidel), co nemusí řešit, tak neřeší. IO cache OS bohatě postačí, o správný fsync na disk se postará FS (MySQL InnoDB lze provozovat i na samotném disku, a nikoliv jen jako soubor na FS, tedy MySQL se sama musí postarat o flush zařízení). Apod. Stačí de facto nastavit 5 nastavení v konfigu podle velikosti paměti.
Osobně bych rozhodně doporučoval PostgreSQL a to nejen z hlediska výkonu (výkon vždy daleko více závisí na schématu a dotazech, a také na hardware a rychlosti disků než na samotném engine). Ale tahle dneska už platforma toho nabízí daleko více. I v oblasti key-value má též co nabídnout.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.