Portál AbcLinuxu, 14. května 2025 05:49

Dotaz: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze

8.4.2012 12:36 oom
Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
Přečteno: 738×
Odpovědět | Admin
Ahoj. Hledám nějakou, jakoukoliv běžně používanou opensource aplikaci, která místo mysql používá postgresql nebo jinou opensource databázi. A to buď z důvodu, že potřebuje něco, co mysql nenabízí nebo se tak jen vývojáři rozhodli. Potřebuju to spíš jako argument, protože mám napsanou aplikaci, která pracuje s mysql, ale aby to fungovalo, používám různé obezličky a třeba v postresu by to běželo bez nich. Ale potřebuju nějaký argument proti mysql, že vlastně nejsem sám, kdo by nepoužíval mysql. Bohužel co jsem procházel různé webové aplikace, tak jsou všechny vytvářeny pro mysql a používaj tuto db víceméně jako skladiště dat. Neznáte něco co neběží s mysql?
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

8.4.2012 13:34 Kit
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dnes už skoro všechny browsery používají k ukládání konfigurace, dočasných i trvalých dat databázi SQLite. Vývojová prostředí také.

Podle mne se MySQL používá ze setrvačnosti, protože to kdysi byla jediná použitelná databáze s vhodnou licencí. Nejpoužívanější typ tabulky MyISAM nezvládá integritní omezení, cizí klíče ani transakce. Rychlost také není nijak závratná a InnoDB je ještě pomalejší. Umí v SELECTu spojit několik tabulek, ale i s tím má někdy potíže.

Je zřejmé, že webové aplikace velmi často degradují databázi na key-value store. Proto se tolik vývojářů ohlíží po NoSQL databázích, které jsou pro tento účel optimalizovány a podávají mnohem vyšší výkon. Přitom by často stačilo položit komplexnější dotaz, který však MySQL nezvládne.

V databázi by měla být uložena veškerá data webové aplikace, nic by nemělo být v aplikaci samotné. MySQL je pomalá databáze. Proto ji vývojáři velmi často obchází a ukládají data a šablony všude možně do různých souborů.

S databází PostgreSQL bývají někdy potíže na sdíleném hostingu. Například na ic.cz jsem o tuto databázi několikrát přišel a musel jsem ji vytvářet znovu. Ovšem na komerčním hostingu by k tomu docházet nemělo.

Databáze SQLite se mi jeví jako velmi výhodná pro účely webhostingu. Už proto, že je obvykle asi 5x výkonnější, než MySQL. Navíc má transakce, integritní omezení i cizí klíče. Počet databází není omezen, je možné jich otevřít víc jedním ovladačem a spojovat je v dotazech.

Jako key-value store se dá použít i některá z databází rodiny DBA - např. GDBM. Pro weby s extrémní zátěží mohu doporučit Redis, který umí i pár dalších abstraktních datových struktur, ale nehodí se pro příliš velký objem dat.
8.4.2012 14:12 oom
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
No já bych potřeboval nějaký typický příklad konkrétní aplikace, kdy mysql nestačí. SQLite je hezká db, ale neběží jako serverová aplikace, ke které by se dalo vzdáleně připojit, což já potřebuju - to jsem zapomněl zmínit. S mysql mám přesně opačné zkušenosti - je dost rychlá a innodb mi přijde ještě rychlejší než myisam. Vše ale záleží na konkrétním návrhu. Kamenem úrazu je třeba situace, kdy člověk potřebuje aby akce s cizími klíči vyvolala trigger - to se musí v mysql nehorázně obcházet a ve výsledku je tam třeba 2x tolik triggerů, které dělají v podstatě to samé => ohromná degradace výkonu. Potřeboval bych nějaký příklad běžné konkrétní aplikace, která neběží s mysql - vím jen o různých účetích systémech, tam na datech dost záleží a používají postgresql, ale to není zrovna ten typicky běžně používaný příklad co hledám. Nemusí se ani jednat o webovou aplikaci. Jde jen o to mít něco v rukávu, čím bych mohl lépe přesvědčit některé lidi o nasazení jiné db než mysql.
8.4.2012 15:58 Kit
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
MySQL považuji za línou databázi, alespoň dle mých zkušeností. PostgreSQL je sice pro jednoduché dotazy ještě o něco pomalejší, ale s komplexními dotazy jeho výkon relativně roste. Viz zmíněné triggery.

Argumentem může být fakt, že MySQL neumí zpracovat to, co od databáze požaduješ. Určitě potřebuješ transakce, triggery, vlastní datové typy, cizí klíče a integritní omezení sloupců. Honit to někde v aplikaci je hloupost.
11.4.2012 09:15 Iq
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
Tady mate zajimave "srovnani" http://www.wikivs.com/wiki/MySQL_vs_PostgreSQL
pavlix avatar 8.4.2012 14:28 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Já osobně MySQL nasazuju jenom tam, kde je to bezpodmínečně nutné.

PostgreSQL nevyžaduje takové chujoviny jako přihlašování heslem u lokálních aplikací a podobné. Navíc PostgreSQL má dlouhou historii jako opravdová síťová databáze s transakčním zpracováním, views a dalšími věcmi. Do MySQL tohle všechno napatlali teprve nedávno.

Jinak na malé lokální databáze s klidem používám SQLite nebo klidně i něco, co nemá v názvu ani popisu SQL.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
8.4.2012 15:58 oom
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
PostgreSQL nevyžaduje takové chujoviny jako přihlašování heslem u lokálních aplikací a podobné.
Když už jsme u toho, jde v postgresu nastavit oprávění na konkrétní řádek tj. uživatel bude mít oprávnění jen na některé řádky? Stačilo by oprávnění na view nebo jsou nutná oprávnění jen nad tabulkami? Byla by to docela zajímavá vlastnost.
okbob avatar 9.4.2012 17:01 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
Práva lze nastavovat samozřejmě i na pohledy - a nevybavuji si, kdy to nešlo. Omezit přístup na určitou podmnožinu dat samozřejmě lze - právě pomocí pohledů, případně u složitějších věcí pomocí funkcí generujících tabulku.
okbob avatar 9.4.2012 16:01 okbob | skóre: 30 | blog: systemakuv_blog | Benešov
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
Odpovědět | | Sbalit | Link | Blokovat | Admin
rADOn avatar 10.4.2012 13:19 rADOn | skóre: 44 | blog: bloK | Praha
Rozbalit Rozbalit vše Re: Aplikace, kde se místo MySQL používá PostgreSQL nebo jiná OSS databáze
Odpovědět | | Sbalit | Link | Blokovat | Admin
Kdysi dávno, v dobách kdy gigabajt bylo "hodně", jeden moudrý člověk prohlásil něco v tomto smyslu: "MySQL je sračka databáze, ale na srovnání tabulky s milionem řádek nic rychlejšího není." Myslím že to víceméně platí dodnes. Na jednoduché tabule ve webových aplikacích je mysql prefektní, na složitějších dotazech uz to nic moc není, a když dojde na triggery nebo storky tak je to tragédie. O kurzorech líp nemluvit :-)

OTOH my v práci používáme MySQL hodně, kromě jiného proto že má rozumně zvládnutou replikaci.
"2^24 comments ought to be enough for anyone" -- CmdrTaco

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.