Dès que les besoins vont croissants, la question du bon SGBDR revient inévitablement. PostgreSQL et MySQL semblent se ressembler et on peut passer de l’un à l’autre sans trop de boulot si aucun tuning approfondi n’a été réalisé. On peut donc les comparer (à tort ou à raison) et les développeurs basculent volontiers de l’un à l’autre pour tester. Cependant, les logiques sont différentes derrières ces deux SGBD et la grande ancienneté de PostgreSQL se ressent sur ce qui fait clairement ses forces : fiabilité, consistance et fonctionnalités plus poussées.
Avantages de PostgreSQL par rapport à MySQL
- Support de la syntaxe Oracle : si l’ancienne base de données était sous Oracle, la migration sera plus facile sur PostgreSQL ;
- PostgreSQL est plus fiable et l’intégrité des données y est plus performante ;
- Tout ce qui est lié aux requêtes est meilleur avec PostgreSQL. PostgreSQL dispose d’un planificateur de requêtes sophistiqué et d’un optimiseur de requêtes ;
- Dans un contexte de datamining / data warehouse, PostgreSQL est plus performant ;
- La documentation de PostgreSQL est plus dense et complète et de façon général le support est meilleur ;
- PostgreSQL traîne moins de casseroles (astuces, limitations…) que MySQL ;
- PostgreSQL est meilleur pour les requêtes avec sous-requêtes (même si MySQL s’améliore) ;
- Argument non technique : PostgreSQL ne « dépend » pas d’un contributeur principal privé comme c’est le cas pour MySQL avec Oracle ;
- PostgreSQL propose une licence MIT qui est plus permissive que la licence GPL de MySQL.
Avantages de MySQL par rapport à PostgreSQL
- Plus adapté pour les applications en lecture seule (notamment les applications web). En ce sens, MySQL fonctionne bien avec PHP et propulse beaucoup d’outils web ;
- MySQL supporte le moteur InnoDB ce qui facilite la tâche pour les transactions sur les outils qui doivent fonctionner 7j/7 et 24h/24 (OLTP) ;
- MySQL est plus répandu et peut s’utiliser sans effort de configuration ;
- MySQL est plus rapide sur les requêtes simples.
Pour conclure, MySQL est meilleur pour les besoins simples avec peu de volume. PostgreSQL satisfera, pour sa part, les besoins plus exigeants en terme de fiabilité et fonctionnalités.