MySQL vs. PostgreSQL rubrika: Databáze: SQL

4 Stefano
položil/-a 6.5.2013

Ktorú databázu a prečo? Výhody nevýhody.

Komentáře

  • Vašek Ch. : Nechceš raději upřesnit, co hodláš spáchat? Na tohle se nedá odpovědět nějak rozumně spatra, aniž by člověk nepopsal celou obrazovku :). 6.5.2013
  • Stefano : Otázku som napísal takto zámerne. Odpovede dole sú presne také aké som očakával. Mnoho ľudí začne s MySQL pretože je všade. Kto skúsi MySQL a PostgreSQL väčšinou tvrdí. Nechápem ako som mohol používať MySQL. PostgreSQL dokáže všetko čo MySQL + omnoho viac. 7.5.2013
  • joinmax : Odpovědi jsi očekával, napsal jsi to záměrně... takže šlo jen o další flame tady. 7.5.2013
  • Vašek Ch. : @Stefano: Hezký závěr, tož vitej ;-). 7.5.2013
  • brabitom : @joinmax: taky mně to připadá, že někdo chtěl založit další flame :D Nicméně otázka neměla znít MySQL vs. PostgreSQL, ale spíš MariaDB vs. PostgreSQL ;) 10.5.2013
  • Stefano : @brabitom: MySQL vs. PostgreSQL preto lebo práve tieto databázy sú dostupné na takmer každom webhostingu. 11.5.2013
  • brabitom : @Stefano: nojo, jenže hostingy obecně jsou z pohledu databází problém. Veliká síla těchto databází je v možnostech konfigurace, což hostingy obvykle neumožní a pokud ano, tak s omezenými možnostmi. Mám zkušenosti jak s MySQL/MariaDB tak s PostgreSQL a ani jednu si nedovolím zatracovat. 12.5.2013
  • Anonym : Otázka je jestli se má dneska (v době AWS, Heroku, AppFog, AppHarbor apod.) ještě cenu zabývat se tím, co nabízejí tradiční hostingy. Databáze se tam dají vybírat dle libosti a podle vhodnosti pro danou úlohu. 14.5.2013
  • joinmax : O tom přece tahle otázka je - kterou databázi si vybrat, ne? (akorát je bohužel špatně položená, pokus o flame) Je jedno, jestli ta DB poběží na klasickém hostingu, na vlastním serveru nebo někde v "cloudu". 15.5.2013
  • Honza Břešťan : Ja teda na te otazce nedokazu najit nic, co by melo podnecovat k flame. Kdyby znela treba "ktera DB je lepsi?", pak by to bylo jasne. Takhle je to sice obecna otazka, ocekava obecne a asi obsahle odpovedi, ale s flamem to proste nema nic spolecneho. 15.5.2013
  • Vašek Ch. : Dle mého názoru je největším flamem tady pokus označit tuto otázku za flame. Kašlete na to. 16.5.2013
odkaz
9 Vašek Ch.
odpověděl/-a 7.5.2013
 
upravil/-a 7.5.2013

Hlavní výhoda MySQL je její rozšířenost. Více hostingů (např. Amazon RDS) a administátorů s ní přišlo do styku. Proti Postgresu navíc mluví i horší tooly (i pitomý Adminer má při použití Postgresu mnohem více bugů), kor na Windows. Pokud tedy toužíš po něčem jako "databáze", do čeho budeš rtvát řádky (třeba bez referenční integrity) a chceš svůj projekt hostovat prakticky všude, MySQL by mohla stačit.

Ale tady asi výhody končí.

Obecně je PostgreSQL považvána za mnohem vyspělejší databázi. Věci, které se do MySQL přidávají teprve teď, má Postgres třeba 10 let. PostgeSQL tě hezky plácne přes prsty s šikovnou errorovou hláškou, když uděláš něco, co bys dělat neměl. Je na tu databázi prostě spolehnutí (žádný nesmyslný error #150 jako v MySQLku). Počet WTF momentů se s Postgresem limitně blíží nule (u MySQL je to přesně naopak). Pokud se s databázemi tepve učíš, je Postgres tím tuplem lepší volba, poněvadž nehází klacky pod nohy a alespoň si nezdeformuješ svůj pohled na databáze (resp. na to, co od databáze čekat, poněvadž od MySQL toho moc čekat nemůžeš). Postgres má šikovnější datové typy (žádná schizofrenie jestli použít timestamp nebo datetime), netvrdí, že něco umí, když tomu tak není (zkus si udělat CHECK constraint nebo FOREIGN KEY při definici sloupce v MySQL -- ani s warningem nepípne, a přitom se žádný CHECK ani FK nenadefinoval).

Moje celkové shrnutí je, že na papíře obě dvě databáze vypadají solidně a těžko se obhajuje jedna nebo druhá, dokud to člověk nevyzkouší. I s MySQL se dá žít. Ale přestože Postgres nemá žádnou mega killer feature navíc, stokrát nic dovede umořit vola a jakmile se jednou projedeš s Postgresem, k MySQL se už nebudeš chtít vracet; naopak je to ale běžný jev. Na malém i velkém projektu se data budou mít v Postgresu jako v bavlnce.

Na závěr jeden twít od @petdance: "I wish I had enough money to run Oracle instead of Postgres." "Why do you want to do that?" "I don't, I just wish I had enough money to."
Naopak o MySQLce se traduje, že se jedná o semestrální práci, která nikdy neměla opustit stůl daného studenta :).

PostgreSQL for the win. (A jestli jsem nějak zaujatý, tak si za to MySQLka může sama.) Velmi doporučuju nenamotat se na tu sněhovou MySQL kouli a začít ji používat jen pro to, že ji používají všichni ostatní.

Komentáře

  • Stalky : Pěkně shrnuto. Tak proč naprostá většina projektů ( alespoň tak mi to přijde ) běží právě na MySQL a ne na PostgresSQL, když je očividně o mnoho lepší? 7.5.2013
  • podhy : Stalky: protože na drtivé většině webhostingů je dostupné pouze MySQL 7.5.2013
  • mar.kubat : A protože je mysql jedna ruka s php, což se všude proklamuje. Přitom muže php fungovat výborně i s postgresem. Otázkou je, zda při výběru databáze nevybrat i nějaký pěkný programovací jazyk. 7.5.2013
  • Vašek Ch. : Právě, tohle je ta sněhová koule. Většina tutoriálů a příkladů a školení a všeho začíná na PHP + MySQL a proklamují je jako nerozlučnou dvojku, takže se začátečník o tom, že by to šlo jinak, ani nedozví. Hostingy už jen přikapávají olej do ohně, protože se na téhle sněhové kouli vezou taky, pádž se uživí, i když podporují jen MySQL. Takže kruh se uzavírá, kvalitnější databáze zase pro jednou utře a MySQL sněhová koule zase nabrala na objemu. Přitom vážně neexistuje snad jediný dobrý důvod, proč se MySQL zabývat. Stačí si jen vybrat hosting, kde se ti budou starat i o Postgresí databázi, a celý svět MySQL-hell můžeš minout, a nenechat si tak odebrat pár let života :-)). 7.5.2013
  • Anonym : "Počet WTF momentů se s Postgresem limitně blíží nule" Třeba to, že když se uživateli změní jméno, tak se mu vymaže heslo, protože PG používá uživatelské jméno jako salt? :-) 10.5.2013
  • mottl.jakub.janov : Hodně záleží na co to bude. Často se mi stává, že musím použít MySQL, ačkoliv by PosgreSQL ušetřil hodně práce (procedury, vlastní typy). Naopak se mi stalo, že jsem musel použít PosgreSQL a potom hodně nadával, protože databáze byla prostoduchost sama a já jsem potřeboval hlavně kvalitní a snadno použitelné nástroje (což jsem u PosgreSQL zatím nenašel). 14.5.2013
  • diverman : Co Vam u postgresu chybelo? Osobne nepotrebuji nic vic nez command-line klient a nastroj pro vygenerovani ER diagramu. 14.5.2013

Pro zobrazení všech 9 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.