ugrás a tartalomhoz

MySQL 5.0 és PostgreeSQL összehasonlítása

Anonymous · 2005. Okt. 29. (Szo), 23.46
Üdv Mindenkinek!

Elsősorban az érdekelne hogy:
- mik a fő különbségek a két rendszer legfrissebb stabil verziója között?
- melyiket milyen szituációban melyiket érdemesebb használni?
- sebesség terén vannak e számottevő eltérések, ha igen melyikük javára?
- melyikük szabványkövetőbb?
- lincensz és költségek terén melyik oldalra billen a mérleg (üzleti felhasználást is figyelembevéve)?
- megbízhatóság, biztonság kérdésében milyen tapasztalataitok vannak?
- szerintetek melyiküknek van jövője hosszútávon??
- hol tart ez a két rsz most a "nagy" kereskedelmi adatbáziskezelőkhöz (oracle,db2,mssql) viszonyítva?

végül egy személyes:

- egy üzleti célú, várhatóan nagy forgalmat lebonyolító, adatbázisában számos táblát, komoly rekordszámmal felvonultató webes alkalmazás kialakításánál mi alapján dönthetem el, hogy melyik megfelelőbb számomra? melyiket ajánlanátok?

minden érdekel a témával kapcsolatban (linkek, tesztek, irodalom, egyéni tapasztalatok, személyes szimpátia stb)! ne fogjátok vissza magatokat :)

előre is köszi!
 
1

Döntés

Bártházi András · 2005. Okt. 30. (V), 12.46
Szia!

Elöljáróban annyit leszögeznék, hogy nekem csak a MySQL-lel vannak tapasztalataim, a PostgreSQL-lel csak elkezdtem ismerkeni, aztán *számomra* nehézkes volt az ismerkedés eleje, így abbahagytam. Plusz teljesen elég is volt a MySQL.

A fő különbségekről ennek tekintetében nehéz beszélnem. A PostgreSQL az SQL szabványból jóval több dolgot valósít meg (ez azt hiszem, tényként kijelenthető), és a PostgreSQL-t használók a sebességét tekintve is azt mondják róla, hogy jó. A MySQL-lel az a tapasztalatom, hogy elég gyors tud lenni, régen ez az előnye volt, azóta talán a PostgreSQL behozta, nem tudom.

A MySQL-hez sok leírást fogsz találni, nagyon jó a doksija, sok eszköz van hozzá, a támogatottsága kiváló, a hoszting cégeknél sem lesz vele bajod. Webes alkalmazásoknál a MySQL tudása általában bőven elegendő, az 5.0-s verzióval ez a kijelentés talán még igazabb. Komplex SQL-t igénylő alkalmazásoknál én elgondolkodnék, hogy PostgreSQL-t használok, mivel a tárolt eljárásoktól kezdve a triggerekig nagyon jók a lehetőségei, de ebben a hitemben a MySQL 5.0 megint megingatott, inkább a MySQL mellett döntenék, legalábbis az általam elképzelt feladatokat tekintve.

Mint cégvezető, a hoszting kapcsán azért a MySQL-t preferálom, mert a robosztussága nagyon jó, az egyes adatbázistáblákat külön fájlban tárolja, így ha az egyik bármiért megsérülne, más nem sérül, illetve az is általában javítható, nagyon megbízható szolgáltatást lehet rá építeni. Lehet bináris mentést is készíteni a táblákról, az sem okoz neki gondot. A MySQL-ből magas rendelkezésreállású cluster is építhető, amiben információim szerint egyedülálló.

A MySQL 5.0-ról tudni kell, hogy még nem mindent támogat az újdonságai terén, mint a triggerek, tárolt eljárások, amit a PostgreSQL már régóta.

A lincencet illetően a gyakorlat az, hogy ha szolgáltatásra használod a MySQL-t, azaz a te gépeden fut, akkor ingyenes. Ha komplex megoldásként szeretnéd eladni, például beleforgatva egy alkalmazásba, akkor meg kell vásárolni. A PostgreSQL teljesen ingyenes.

Sem a MySQL, sem a PostgreSQL esetében nem hallottam nagyon-nagy biztonsági résekről, természetesen nem árt, ha frissít az ember mindig a legújabb verzióra, ahogy kijön.

Szerintem mind a kettőnek van jövője hosszú távon, bár a PostgreSQL-nek marketingből nem ártana egy kicsit gyúrnia, hogy jobban feljöjjön, és nagyobb legyen a verseny.

A MySQL SQL tudását tekintve közelít a nagyokhoz, de azért sokminden hiányzik belőle. A PostgreSQL szerintem ugyanott lehet, mint a kereskedelmi alkalmazások. A MySQL kapcsán meg kell említeni a MaxDB motort, ami egy nagyon sokat tudó anno kereskedelmi, most már nyílt forrású motorra, a SAPDB-re épít, aminek nagyon jó a szabványtámogatása, s része a MySQL-nek. A MySQL tudtommal egyedül tud valódi HA szerverként üzemelni, illetve sokkal jobban tanulható, mint az Oracle, ami alapvetően pilótavizsgás.

Én a MySQL-t választottam, választanám, de konkrétumok esetén, lehet, hogy másra esne a választásom.

-boogie-
2

Döntés

Balogh Tibor · 2005. Okt. 31. (H), 15.53
A lincencet illetően a gyakorlat az, hogy ha szolgáltatásra használod a MySQL-t, azaz a te gépeden fut, akkor ingyenes. Ha komplex megoldásként szeretnéd eladni, például beleforgatva egy alkalmazásba, akkor meg kell vásárolni.


GPL license alatt szabadon felhasználható. Ez nem azt jelenti, hogy kereskedelmi használatra is alkalmazható, de nem építhető be az alkalmazásba?
Készíthetek olyan alkalmazást ami használja a dbms-t, de a kódjának részét vagy egészét nem építhetem be a programomba. Vajon a telepítő programom tartalmazhatja a mysql-t?

A MySQL kapcsán meg kell említeni a MaxDB motort, ami egy nagyon sokat tudó anno kereskedelmi, most már nyílt forrású motorra

Nem ezt a motort vásárolta meg az Oracle nemrég?
3

maxdb vs. innodb

Hojtsy Gábor · 2005. Okt. 31. (H), 16.05
Nem! A MaxDB-t a MySQL az SAP-tól vette át (mint András is írja), és belső fejlesztésben van. Az InnoBase céget vásárolta meg az Oracle.
4

Hm, hm...

Balogh Tibor · 2005. Okt. 31. (H), 16.34
Köszi a választ!

Azért nem találtam a hírt, mert azt hittem, hogy a hwsw-en olvastam. Egyébként, ha ez számít valamit, egy szóval nem vontam kétségbe amit András írt.
5

szerintem a PG sokkal kiforrottabb

Sweetchack · 2005. Okt. 31. (H), 17.03
Nekem az a tapasztalatom, hogy a PG-ben sokkal jobbak a lehetőségek.
Például van egy UPDATE tipusú lekérdezés és a WHERE záradékban van egy SubSelect, akkor annak FROM részébén nem adhatod meg azt a tábált amiben éppen modósítani akarsz (MySQL estén, PG simán tudja). Persze ha "multi table syntaxot" használod akkor egy kicsit jobb a helyzet.
Meglepve tapasztaltam hogy ugyanaz az SQL mondat (update) különböző eredménnyel futott le 4.1x és 5.0.15 esetén.
PHP 5.0.5 és 5.1rc (tapasztalataim szerint) még nem támogatja a Procedurák eredmény halmazait. Ezt úgy értem hogy nem lehet visszakapni a rekordokat, de nem ad hiba üzenetet. JDBC-vel ugyan ez megtehető.
Az én desktop gépemen (WinXP)a MySQL a lekérdezéseket 1.5 - 2.5x gyorsabban megcsinálja, de mintha a triggerek jobban lasítanák. (Nem igazán pontosak és meghatárózóak a méréseim)
Viszont a cjb.hu ingyenes tárhely, 10x gyorsabb a gépemnél. Azt beszélik hogy a PostgreSQL BSD rendszeren a leggyorsabb.
Én jelenleg úgy fejlesztek hogy mind két DB-vel müködjön a program (MySQL 4.x nem érdekel)
Ha MySQL felé hajlik valaki azt javaslom nézzen utána hogy a függvények milyen adat típusokat tudnak fogadni, mert ezen a téren vannak még hiányoságok.

Amit én nagyon hiányolok a MySQL-ből az a DISTINCT ON (), viszont sok beépített függvény van. (Date-Time string ...)

Nekem még nem jelentett problémát hogy a PG egy kicsit lassab, ezért tudása miatt PG párti vagyok.

Bár most jut eszembe hogy vannak új tábla típusok is a MySQL 5-ben. Tehát érdemes ezeket figyelembe venni az adatbázis tervezéskor.