PostgreSQL
Maar wat zijn de verschillen bij mysql ?
Of zijn die helemaal hetzelfde?
Ook que php codes helemaal gezelfde?
Als je niet echt weet waarom je postgresql wilt gebruiken is volgens mij de kans groot dat je het niet nodig hebt, hoewel Frank dit met me oneens zal zijn ;)
Als je mysql gewend bent is het even aanpassen aan postgresql en het management werkt ook net even iets anders.
Verder zal je sommige sql queries moeten aanpassen omdat mysql minder snel fouten zal geven dan postgresql, en zal postgresql over sommige fouten vallen waar mysql dat niet deed.
Quote:
Als je niet echt weet waarom je postgresql wilt gebruiken is volgens mij de kans groot dat je het niet nodig hebt, hoewel Frank dit met me oneens zal zijn ;)
Het gaat er niet om of je het wel of niet nodig hebt, het gaat er om dat PostgreSQL zich wel normaal aan de regels houdt en MySQL niet. Althans, daar gaat het om bij de databasekeuze voor beginners. MySQL heeft varchars waarvan je de lengte kan instellen. Dat is absurd, het is een VARchar. En het zou wel handig zijn als je een error zou krijgen als je je ingestelde limiet overscheidt, maar nee, dan kapt 'ie 'm af.
Het voordeel van PostgreSQL is dat je relaties kan maken. Dit is niet voor gevorderden belangrijk, maar ook voor beginners. Je leert dit in elk degelijk SQL boek al heel rap. Zonder die relaties, zoals in MySQL (MyISAM), kun je wel wat leuke websitejes maken, maar wat mij betreft kun je nooit iets serieus maken aangezien je je eigen database en data niet kunt vertrouwen.
Wat verder veel beter is aan PostgreSQL is dat je erg goed stored procedures kunt schrijven. Dit zijn acties die door de database worden uitgevoerd. Normaalgesproken doen mensen dit met PHP, terwijl dit dingen zijn die de database veel beter kan. Dit is dus programmeren.
Check deze link: http://www.phphulp.nl/php/tutorials/3/334/
Dit heeft tot gevolg dat je netter moet programmeren en dus overal moet controleren of je query wel is gelukt en wat er is foutgegaan. Het is aan te raden om hiervoor een database-class te gebruiken die ook een error-log bijhoudt.
Vergeet niet het gebruik van transactions, daar kun je nu altijd over beschikken, maak er dan ook gebruik van. Probeer zo te programmeren dat je database onmogelijk corrupt kan raken door een fout in je php-code.
Wil je nog een stap verder gaan, ga je dan eens verdiepen in PL/pgSQL. Daarmee kun je een complete API binnen de database ontwikkelen. Vanuit PHP roep je deze API aan, met een function, en de API zal de gewenste informatie ophalen, bewerken, wegschrijven, etc. Vanuit php heb je dan geen rechtstreeks contact meer met de data in de database. Je hebt dus niet 1 SELECT, UPDATE of DELETE-query meer in je php-code staan, dit staat allemaal in de API. 3-tier op zijn best, een php-, java- of .NET-programmeur hoeft niet eens meer te weten hoe de database in elkaar zit en werkt, alleen welke functies er moeten worden aangeroepen. En wanneer dat goed in elkaar zit, kun je daar fouten mee maken waarbij de database (of de data) om zeep wordt geholpen.
De php-code is uiteraard verschillend, je kunt geen mysql-functies gebruiken voor PostgreSQL.
http://en.wikipedia.org/wiki/PostgreSQL
dus ik weet nog niet zeker...
Bedankt voor jullie reacties:D
Frank:
Dit heeft tot gevolg dat je netter moet programmeren
Op zich is daar niks mis mee
Arend:
En waarom zou je dat niet doen? Wanneer je zo weinig waarde hecht aan de juistheid van de data, dan neem je je eigen werk niet bijzonder serieus.Dit is met name van belang als je waarde hecht aan zaken als transacties en data integriteit.
Arend:
Klopt, ben het niet met je eens. Wanneer je een keuze moet maken tussen MySQL en PostgreSQL zonder dat je zelf argumenten hebt, neem dan de meest veilige van deze 2 databases. Dan zit je altijd goed. Sinds versie 5 is MySQL wel een stuk beter geworden, maar heeft nog steeds niet het niveau van PostgreSQL.Als je niet echt weet waarom je postgresql wilt gebruiken is volgens mij de kans groot dat je het niet nodig hebt, hoewel Frank dit met me oneens zal zijn ;)
Arend:
Het zal MySQL een rotzorg zijn dat de gegevens niet kloppen... Kijk bijvoorbeeld eens naar het gebruik van GROUP BY in MySQL.Verder zal je sommige sql queries moeten aanpassen omdat mysql minder snel fouten zal geven dan postgresql, en zal postgresql over sommige fouten vallen waar mysql dat niet deed.
-->
MySQL verzint wel iets leuks voor je :)
Quote:
En waarom zou je dat niet doen? Wanneer je zo weinig waarde hecht aan de juistheid van de data, dan neem je je eigen werk niet bijzonder serieus.
Je overdrijft
Zie hier voor een feature vergelijking en een kleine benchmark.
http://monstera.man.poznan.pl/wiki/index.php/Mysql_vs_postgres
Gewijzigd op 01/01/1970 01:00:00 door Arend a
Op http://builder.com.com/5100-6388-1050671.html staat een betere vergelijking van de features, maar ook hier missen de bugs/gebreken die de verschillende databases kennen. In veel vergelijkingen wordt alleen gekeken naar een rijtje features en de snelheid.
En over snelheid gesproken, het maakt nogal uit of je diverse queries vanuit de php-code aanroept of dat je 1 functie in je schema (de API) aanroept die diverse queries uitvoert. Het gebruik van een API kan enorme performance-winst opleveren. Je maakt tenslotte maar 1x een connectie met de database i.p.v. een X aantal keren.
Ik kan maar één reden bedenken voor de keuze van MySQL. Dat is de load bij kleinere applicaties (dus weinig interactie met database). Maar, een kleine applicatie heeft dus ook maar heel weinig load nodig, waardoor het voordeel wegvalt.
Dus noem eens één voordeel van MySQL?
(oh, en een webhosting van 5 euro per maand minder is geen argument)
Ik heb dit geloof ik al is vaker aangegeven dat een dergelijke motivatie gedoemd is te verslappen en geen meerwaarde in een toppic heeft omdat deze waarde niet te onderbouwen is en altijd waar is omdat de waarde een feit/gegeven voor iemand is.
Anders gezegd het is een mening en hierover ga je als het goed is niet discusieren.
Ehh. Volgens mij is een mening juist het enige waarover je kunt discussiëren. Over een feit kun je namelijk moeilijk discussiëren, aangezien het aan te tonen is.
En let op meestal heb je geen oracle DB nodig.
Tevens ben ik nieuwsgierig naar jouw ervaring met PostgreSQL en andere databases in het algemeen.
Wat ik probeer te zeggen is gewoon wat relatieveren dat MySQL totaal overbodig en heel slecht is.
PostgreSQL is ongetwijfeld een veel betere en nuttigere database, die op punten x,y,z het veel beter doen.
Vervolgens zou je kunnen zeggen dat punten x,y,z (voor jou?) ontzettend belangrijk zijn, en dus dat eigenlijk voor de hele wereld belangrijk zijn. En uiteindelijk zou je je kunnen afvragen of het niet het niet heel gek is dat mysql uberhaupt nog bestaat?
Wat ik wil relatieveren is dat mysql ondanks dat het zijn beperkingen heeft, en dankzij dat het zijn beperkingen heeft prima functioneert. Ik neem graag een tegenovergestelde stelling als iemand zo stellig (éénzijdig) een mening ventileert.
Wat ik gewoon écht niet begrijp en nooit zal begrijpen is dat mensen argumentloos verkondigen dat MySQL ook goed is, terwijl ze niet eens weten hoe de andere variant werkt. Begrijp me niet verkeerd, dit is een inhoudelijke discussie, maar volgens mij sla je de plank dan wel behoorlijk mis.
Ik ga ook niet beweren dat 32 bit processoren ook gewoon goed zijn als ik nog nooit echt heb gewerkt op een 64 bit processor.
Ik deel de mening van Arend. Voor de meeste toepassingen volstaat Mysql prima. Ga je voor het echte werk, of is dataintegriteit verplicht, ga dan voor postgresql. Het grote voordeel van mysql is echter dat het (volgens mij) nog sneller is, en dat er op internet veel meer over te vinden is.
En maak ook onderscheid tussen MyISAM en InnoDB, want MyISAM is zelfs voor kleine dingen met enigszins dataintregriteit uitgesloten. En MyISAM is juist onze snelle jongen, niet InnoDB.
Nog een heel belangrijk argument is dat foreign keys en transacties je gewoon tijd besparen.
Ik ben met je eens dat postgesql beter is:
Klaasjan:
Volgens mij is PostgreSQL de "Oracle DB" onder de "gratis" varianten.
En let op meestal heb je geen oracle DB nodig.
En let op meestal heb je geen oracle DB nodig.
Maar mysql is gewoon makkelijk, snel, en het web wemelt van de voorbeelden, de meeste scripts gebruiken mysql, en in de vragen die hier op PHPhulp langskomen is het eerste antwoord meestal: gebruik eens mysql_error() en kom dan terug met de foutmelding.
De vergelijking is haast gelijk aan Windows vs Linux.
En inderdaad Linux is beter, maar ik gebruik (net als de rest van de wereld) Windows omdat het makkelijker, beter gedocumenteerd en wijd verspeid is. Tevsn zijn de meeste progjes ervoor geschreven
Dat geld voor mysql ook.
btw ik bedoel de myisam tabellen.
Klaasjan
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven