[Précédent (date)] [Suivant (date)] [Précédent (sujet)] [Suivant (sujet)] [Index par date] [Index par sujet]
Re: PostgreSQL | MySQL
- To:
- Subject: Re: PostgreSQL | MySQL
- From: Eric Prevost-Dansereau <>
- Date: Fri, 29 Jun 2001 00:35:10 -0400 (EDT)
-
In-reply-to: <[email protected]>
Personnellement, je choisirais PostgreSQL 7.1.
Chacun a ses avantages et ses inconvénients.
À l'origine, MySQL se voulait petit et rapide, parfait pour les base de données qui subissent peu de modifications, alors que PostgreSQL a été pensé "gros système" dès le départ.
* Support des transaction (commit/rollback)
PostgreSQL les supporte depuis un bon bout de temps... Si j'ai bien compris ce qui est indiqué sur le site de MySQL, seul les opérations sur les tables de type BDB peuvent être faites à l'intérieur d'une transaction.
* Write Ahead Log
Si le serveur plante pour diverses raisons, PostgreSQL s'en bien, car chaque opération est inscrite dans le log avant d'être exécutée. Lorsque les changements sont écrits sur le disque (dans le jargon: au 'checkpoint'), il l'indique dans le log. Donc, si ça plante, PostgreSQL est capable d'exécuter à nouveau les opérations qui n'ont pas été écrites sur le disque. Pour MySQL, il semblerait que les tables de type BDB se remettent bien d'une panne.
* Les "Locks"
PostgreSQL supporte les locks au niveau des enregistrements (ou des pages, je ne suis plus sûr), alors que MySQL support uniquement les locks au niveau de la table pour les table MyISAM, mais au niveau des pages pour le type BDB.
En passant, il est indiqué que le type de table par défaut est MyISAM...
* Réplication
Ça n'existe pas encore dans PostgreSQL, mais il y a beaucoup de discussions sur la chose. Sur le site de MySQL, on peut lire que la version 3.23 supporte la réplication (1 maître, des esclaves en lecture seulement).
MySQL ne supporte pas vues, triggers, stored procedures, mais supporte les fonctions (écrites en C/C++).
PostgreSQL supporte vues, triggers et fonctions.
MySQL ne supporte pas les requêtes imbriquées; PostgreSQL, oui.
En postgresql, on peut écrirer les fonctions et les triggers en PL/pgSQL (ressemble beaucoup à PL/SQL de Oracle), en Perl, en C et d'autres langages qui m'échappent. On peut même créer notre propre langage!
MySQL supporte les requetes "SELECT * FROM nom_db.nom_table", mais pas PostgreSQL.