Ik gebruik nu altijd mySQL maar hoor hier vaak wat voorkeur voor PostgreSQL. Wat zijn de verschillen tussen MySQL en PostgreSQL, en wanneer zou je beter de een dan de ander kunnen gebruiken?
Hier zou je eens kunnen kijken.
Ik gebruik zelf MySQL dus heb geen ervaring met PostgreSQL.
Je zou anders de handleiding van PostgreSQL moeten bekijken en via google om meer informatie zoeken.
Voor de rest zal je even moeten wachten op: pgfrank, dat is onze PostgreSQL expert. :)
1) pgSQL is sneller tot heel erg veel sneller dan MySQL.
2) standaard is de data in een MySQL-database volkomen onbetrouwbaar. Alleen wanneer je weet wat je in de database hebt gestopt, zie het logboek, en de data in de database komt daarmee overeen, weet je zeker dat de gegevens correct zijn. Anders is dat nooit het geval, het kan best zijn dat er iets anders in de database staat dan wat jij had willen opslaan. TEXT en signed INTegers zijn eigenlijk de enige datatypes die enigzins betrouwbaar zijn.
3) Het SQL-dialect van MySQL levert standaard hele bijzondere resultaten op wanneer je een foute/ongepaste GROUP BY in de query hebt staan. De query is fout, zelfs MySQL weet dit, maar er wordt zonder enige waarschuwing toch een lukraak en vooral waardeloos resultaat opgelepeld. Goede kans dat je zelf nog niet doorhebt dat de query en het resultaat fout zijn, dat komt vanzelf! Maak je daar maar geen zorgen over...
4) Iedere boerelul met een webserver kan MySQL aanbieden. Dat je er geen betrouwbare systemen mee kunt bouwen, dat is niet het probleem van deze boerelul, dat is jouw probleem.
5) MySQL heeft in MyISAM de beschikking over full text search. Jammer dat MyISAM alleen de meest onbetrouwbare engine is, je kunt er niet eens een relationele database mee bouwen.
Het mooiste punt van pgSQL is dat het altijd volledig gratis is, op het zelfde niveau opereert als bv. Oracle en DB2 en schaalbaar is tot vele TB's. Uitsmeren over meerdere servers en/of schijven is geen enkel probleem, uitstekende methodes om te indexeren, etc. etc. Maar dit soort zaken vind je ook in Oracle en DB2.
Kort samengevat: Het is niet zo zeer dat pgSQL zó geweldig is, maar meer dat MySQL werkelijk aan álle kanten rammelt. MySQL kun je gewoon geen betrouwbare relationele database noemen. En dat zou wel de kern van een database moeten zijn: Op een betrouwbare manier de data beheren.
Ps. Wanneer een goede DBA de server goed heeft ingericht, worden de problemen van MySQL wel minder. Dit soort instellingen zul je echter zelden bij een hostingprovider tegenkomen, teveel queries gaan dan volgens de gebruikers 'verkeerd'... Als provider wil je dit gezeik niet aan je hoofd hebben, een rottig ingestelde server is dan een stuk aangenamer!
Maar het nadeel van pgSQL blijft nog steeds dat je er bijna geen hosters mee kan vinden. (en helemaal voor beginnende php'ers is het niet haalbaar) En ik vind dat mySQL niet aan alle kanten rammelt. Waarom wordt mySQL dan zoveel gebruikt? Ik ben het er wel met je eens dat pgSQL beter is dan mySQL alleen, dat het soms toch voordeliger is te kiezen voor mySQL! (en ik denk dat je dat zelf ook weet)
@Han: Leg eens uit waarom MySQL niet aan alle kanten rammelt. Leg eens uit waarom je de data zou kunnen vertrouwen. Ik ben erg benieuwd...
Dat MySQL door iedere boerelul wordt aangeboden en gebruikt, dat zegt niks. Hoewel, het zegt wel iets over het totaal gebrek aan kennis van wiskunde, databases en SQL.
Het nadeel van postgres is dat het weinig wordt aangeboden, dat heeft toch niks met de db zelf te maken.
Zeg ik dat dan? Ik zeg hier dat mysql meestal om praktische redenen wordt gebruikt.
pgFrank schreef op 16.01.2008 20:50
@Han: Leg eens uit waarom MySQL niet aan alle kanten rammelt. Leg eens uit waarom je de data zou kunnen vertrouwen. Ik ben erg benieuwd...
Dat MySQL door iedere boerelul wordt aangeboden en gebruikt, dat zegt niks. Hoewel, het zegt wel iets over het totaal gebrek aan kennis van wiskunde, databases en SQL.
Ik heb wel even gewerkt met pgSQL maar dat was een tijd terug. (3 jaar ofzo) en ik vond toen eht voor geen meter werken. Niets ging goed, en hij liep contstant vast. Misschien komt het daardoor dat ik niet echt zo'n voorstander ben van pgSQL. Maar mySQL vind ik prima lopen, nooit problemen mee. En voor mijn webapplicaties genoeg. Alleen als het erg ingewikkeld wordt met relaties gebruik ik nog pgSQL. Maar voor simpele dingen niet, waarom niet? Omdat het gewoon niet handig is.
En mySQL rammelt aan alle kanten. Tja... Ik weet daar eigenlijk niet echt goed antwoord op. Tuurlijk, het is niet super strict SQL, en het gaat anders om gegevens. maar het lukt toch meestal wel ermee. net zoals PHP, php is eigenlijk ook een rare taal, uniek in zijn soort. Kortom, ik weet het eigenlijk niet, maar waarom vind jij het dan wel aan alle kanten rammelen? Daar ben ik dan weer benieuwd naar. Afgezien van omgang met data en tollerantie.
(Ik wil eigenlijk niet de 'oude' discussie opstarten)