Ik mis SQLite als DB.
Verder is het misschien voor MySQL handiger verschil te maken tussen MySQL en MySQLi als verbindend component.
Goed punt Webmakerij :-) .

Kan iemand me eventjes kort uitleggen wat het verschil is tussen innoDB en MyISAM? Zelf gebruik ik altijd MyISAM, maar zou niet weten wat de voordelen zijn t.o.v. innoDB :-$ ?
innoDB kan foreign keys en transactions aan
maar zou niet weten wat de voordelen zijn t.o.v. innoDB
Dat is ook zo geheim dat helemaal niemand dit weet!

In het kort komt het er op neer dat je met MyISAM helemaal geen relationele database kunt maken, MyISAM kent namelijk helemaal geen foreignkeys. MyISAM is dus nauwelijks beter dan een textfile met data, er zijn 1000 en 1 manieren om corrupte data te krijgen. En laat het doel van een database nu net zijn om géén corrupte data te krijgen...

De grote voordelen van InnoDB t.o.v. MyISAM zijn dus de foreignkeys en de mogelijkheid om TRANSACTIONs te gebruiken. Met InnoDB kun je dus wél een relationele database maken. Helaas heeft ook InnoDB nog flink wat typische MySQL problemen.
Hartelijk bedankt Arend en Frank ;-) ! Misschien toch maar eens overschakelen binnenkort, of misschien gewoon naar PostrgeSQL. Ik zal nog wel zien :-) .
Ik kan je aanraden om een database abstraction layer te gebruiken,
http://pear.php.net/package/MDB2 MDB2 uit het pear pakket, of het
ZEND Framework
http://framework.zend.com/manual/en/zend.db.html

Bij deze systemen kan je gewoon onafhankelijk van je code een andere database gebruiken. Dus door enkel met een andere database (MS SQL, Oracle, Mysql, Postgresql) te verbinden kan je een andere database gebruiken. Er is geen reden om alle code aan te passen.

Wel zul je enkele veranderingen in je queries moeten doorvoeren omdat niet alle databases dezelfde functies ondersteunen.
Om even wat tegenwicht aan Frank te geven:
MyISAM schijnt sneller te zijn voor bijvoorbeeld hele simpele SELECT acties en veel INSERT's. Oftewel: eigenlijk alleen voor logs of chatboxen...

En volgens het topic, ook van Frank, is PDO ook een degelijk alternatief voor je eigen Database Abstraction Layer, indien je zelf niet volledige controle wilt hebben :)

Ik zie trouwens net een feature van PDO staan die belachelijk handig kan zijn: data in een bestaand object fetchen: PDOStatement::setFetchMode()

En persoonlijk voel ik nog altijd wel wat voor SQLite. Moet je voorstellen: even je huidige homepage (simpel CMS, weblog, nieuwssysteem, of zo) backuppen door gewoon alle bestanden te kopiëren.
Aanvulling op de reactie van Jelmer: Laatst las ik ergens dat MyISAM waarschijnlijk sneller is omdat er geen foreignkeys zijn. Er zijn dus geen controles op indexen e.d. nodig. Het klonk mij redelijk logisch in de oren. Overigens is het wel vreemd dat je er dan bij een SELECT zoveel voordeel hebt, bij een SELECT speelt een FK (en wat daar mee moet gebeuren) namelijk helemaal geen rol, die zijn bij een INSERT, UPDATE en DELETE query echter essentieel.

Maar goed, ik ben geen dba en ken de details van een dbms dan ook niet.
Is er trouwens iemand die eens een tutorial wil schrijven over de foreinkeys in een InnoDB? Ik heb me pas helemaal rot naar gezocht naar de manier om verschillende niveaus te verwijderen. Bijvoorbeeld dat wanneer je een user verwijderd alle onderliggende niveaus, die betrekking hebben om de user ook worden verwijderd.

Wie heeft er tijd over? :D Ik denk (als ik nu al kijk naar de uitslag van de poll) dat hier wel vraag naar is.
Overigens zijn dergelijke resultaten (snelheid) enkel van belang bij zeer grote sites, zoals tweakers.net. Ook hier geld dat met de moderne hardware het allemaal niet zo bar veel uit elkaar ligt. Myisam is nog wel wat sneller, maar daarmee heb je wel weer veel meer tijd nodig om code te schrijven om de integriteit van de database te bewaken, die met postgresql of innodb ook gegarandeerd zijn.

Tijd voor een benchmarkje?
@Arend: Zie wederom tweakers.net voor een benchmark. PostgreSQL is een stuk sneller dan MySQL en blijft ook onder grote druk rete snel. De performance van MySQL stort, overdreven gesteld, als een kaartenhuis inelkaar.

Bovenstaande link geeft een beeld van de performance op een erg omvangrijke server, maar wanneer je even zoekt, kom je nog andere vergelijkingen tegen op de beter betaalbare servers. Ook daar zie je dat PostgreSQL heer en meester is wanneer je de vergelijking maakt met MySQL. Er zijn geen vergelijkingen met andere databases, daar valt dus weinig over te zeggen.

Reageren