PHPBuilder : Open Source Databases: As The Tables Turn
Par Auteur INTERNE, lundi 13 novembre 2000 à 14:14 :: Lu sur le Web :: #681 :: rss
Tim Perdue propose un comparatif entre Postgres et MySQL dans un article sur PHPbuilder.com faisant suite à un article paru le 07 juillet http://www.phpbuilder.com/columns/tim20000705.php3
Le comparatif est effectué avec MySQL 3.23.26beta et Postgres 7.1 sur les mêmes structures SQL (Postgres incluant tout de même
les clés étrangères non supportées par MySQL).
Première constatation
Avec 30 clients sur le site Web test, Postgres réalise 3.76 pages à la seconde ce qui semblait plutôt mauvais dans un premier temps jusqu'à ce que le même test soit réalisé avec MySQL. Le test a finallement été annullé et réduit à une concurrence de 5 utilisateurs, mais ne permettant pourtant qu'un affichage de 0.77 pages par seconde.
Cette page contient 16 requêtes et jointures sur 12 tables différentes ce qui est tout de même trés complexe.
Une autre page a été créée réalisant insert, update, delete et transactions (non supportées par MySQL). 30 clients s'y connectent.
Postgres répond 2.05 pages par seconde, et MySQL fait échouer le test.
Une raison à celà est que MySQL s'écroule trés rapidement lors des 'insert'. Quelques recherches montrent que MySQL ferme entièrement la table quand on procède à un 'insert', alors que Postgres semble ne 'locker' que les 'rows'.
Cette difference oblige rapidement MySQL à empiler les connections concurrentes.
La même chose se produit si on procède à un large 'select' quand un autre 'process' insère dans la table.
MySQL empile les connections jusqu'à ce qu'elles s'écroulent comme un château de cartes.
MySQL devient ainsi trés lent à partir de 5 connections concurrentes et fait échouer l'exécution des scripts à partir de 15.
Seconde constatation
Les selects et jointures, le 'dada' de MySQL, sont effectuées beaucoup moins rapidement avec MySQL lorsque le nombre de connections concurentes augmente.
Troisième constatation
Le count(*), une basique jointure entre 2 tables et groupement pour connaitre le nombre de valeurs correspondantes dans la seconde table.
count(*) a toujours été la bête noire de PostGres dans le passé, mais aujourd'hui Postgres est 2 à 3 fois plus rapide.
Bref tous les tests effectués révélent la supériorité en terme de rapidité et de support de charge de Postgres face à MySQL.
Conclusion
Il ne faut pas voir dans ces articles une descente de MySQL, mais que Postgres rattrape son retard et n'est plus géné par le poids des caractéristiques que n'a pas MySQL. Le choix doit se faire en terme de caractéristiques (clés étrangères, vues, transactions...), de performance ou de stabilité.
De toute façon les deux restent extrèmement rapide par rapport aux bases de données bureautique telles que MS-Access ou FileMaker.
Consulter le lien






Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.