PostGreSQL vs. MySQL, 2 SGBD pour 2 besoins

/, logiciel/PostGreSQL vs. MySQL, 2 SGBD pour 2 besoins

PostGreSQL vs. MySQL, 2 SGBD pour 2 besoins

Vous vous interrogez sur le choix d’une base de données ? Vous souhaitez opter pour une solution Open Source pour votre projet ? Cet article est fait pour vous !

Dans un Système Informatique, la base de données est à la fois indispensable, mais d’un usage qui peut s’avérer complexe. Nous comparons ci-dessous 2 ténors de la catégorie « Open Source », à savoir PostGreSQL et MySQL. Quels sont les avantages et inconvénients de chacune ? Quelle base utiliser pour quel type de projet ?

Mais d’abord, une base de données pour quoi faire ?

Afin de supporter un gros volume d’information pour votre projet (site, application, …) il est nécessaire que les données soient stockées sur une plateforme robuste, fiable et sécurisée que constitue la base de données. Elle permet d’accéder aux données, de gérer les requêtes envoyées depuis le site ou l’application, mais aussi de gérer finement les droits d’accès.

C’est pour cela que derrière le défi technique (volume, synchronisation, autorisations, calculs complexes), les bases de données sont si importantes : elles sont le support d’une information à laquelle on doit pouvoir accéder en toute confiance.

MySQL présentation

La popularité de MySQL tient à sa simplicité d’utilisation et son adéquation aux besoins d’un site web de base ou d’une application peu sujette à des emplois simultanés d’un grand nombre d’utilisateurs. Facile à mettre en place, MySQL possède peu de restrictions et est moins limitée comme par exemple le nombre d’enregistrements dans une table, le nombre de tables ou encore le type de donnée enregistrées. On la préfère pour des petits volumes de données, avec un faible nombre d’utilisateurs. Dans ces cas l’intégrité référentielle, qui permet l’indexation des données pour un accès plus rapide et efficace, n’est souvent pas nécessaire. La vitesse d’exécution des requêtes s’en trouve accélérée, ce qui explique les résultats incomparables de MySQL sur des bases de données simples avec peu de tables et une quantité raisonnable d’enregistrement. MySQL s’est traditionnellement focalisé sur les applications web faisant surtout des lectures, souvent développées en PHP, et dont le souci principal est d’optimiser des requêtes très simples.

PostgreSQL présentation

Toutefois dès qu’on sort de ce cadre, un système plus robuste peut être requis, c’est là que PostGreSQL intervient. PostGreSQL permet de stocker une information beaucoup plus structurée en termes de relations et de contraintes. La base peut également passer outre les limites de MySQL (comme la limite à 10 caractères des noms de champs) et facilite les exports et imports des différents formats de données. Elle est aussi plus respectueuse de la norme SQL ce qui est un avantage en termes de compatibilité sur diverses plates-formes matérielles et sous différents systèmes d’exploitation, et aussi lorsqu’elle est confrontée à d’autres bases (Oracle, SQLserver, DB2, etc.).

Le comparatif en 4 points

Architecture : La principale différence entre MySQL et PostGreSQL est que le système de gestion de base est rationnel pour MySQL et relationnel & objet pour PostGreSQL (SGBDRO). Dans un système de gestion de base de données relationnel-objet (SGBDRO) l’information est représentée sous forme d’objets comme dans la programmation orientée objet. Ces objets sont accessibles aux langages orientés-objets comme s’il s’agissait d’objets de ces langages (comme Java, C#, .NET, etc.). Cela confère à PostGreSQL des fonctionnalités qui facilitent la tâche des développeurs dans son exploitation.

Intégrité des données : Il s’agit d’assurer à tout instant la cohérence, la fiabilité, et la pertinence des données que la base contient. Pour une application qui contient un nombre conséquent d’enregistrements, le choix de PostGreSQL est plus judicieux. Elle se concentre traditionnellement sur la robustesse et la fiabilité des données, c’est pourquoi les développeurs d’application préfèreront ses fonctionnalités. Pour ne citer que cet exemple, elle dispose d’un planificateur de requêtes sophistiqué, capable de joindre (de « jointure ») efficacement un grand nombre de tables. Elle possède aussi des formats de tables qui peuvent être intéressants (Json entre autres) qui lui permettent aussi de bénéficier des avantages du NoSQL par exemple.

Maintenance de la base : PostGreSQL est optimisé pour la production, en effet elle vient directement concurrencer Oracle sur ce point. Par exemple pour les backups : il n’est pas nécessaire d’arrêter la production comme sur MySQL, le système de backup et de réplication de PostGreSQL est plus adapté et récupère les données et les configurations tout en effectuant la mise à jour de façon autonome.

 

MySQL

PostGreSQL

Architecture

SGBD

SGBDRO

Contraintes d’intégrité

+

++

Fonctionnalités pour le dev   d’application

+

++

Maintenance

+

 Performance avec un large volume de données

++

Partir sur de bonnes bases (de données) et éviter les migrations ?

Compte-tenu des éléments vus ci-dessus, il est important de réfléchir aux besoins attendus pour choisir sa base de données. La migration des données d’un système à l’autre peut s’avérer délicate et selon la charge de données, il est même parfois plus judicieux de repartir de zéro.

Néanmoins, si une migration est nécessaire, plusieurs aspects sont à prendre en compte.

Format des données : Il convient de traduire toutes les données d’un format vers l’autre. En effet les types de données ne sont pas forcément les mêmes d’une base à l’autre. Une donnée de type date peut par exemple avoir 2 formats différents. Même si des outils facilitent la tâche de conversion, c’est une charge de travail non négligeable à prendre en compte selon le volume de données à traiter.

Requêtes SQL : Il est nécessaire de faire l’inventaire des requêtes enregistrées sur le site ou l’application. Chacune devra être revue pour être adaptée ou réécrite pour son usage sur la base de destination. Les modèles de requêtes sont différents d’un système à l’autre. Cela peut poser problème lorsque l’application compte plusieurs milliers de requêtes.

Il faut donc évaluer la quantité de données, de requêtes et leur complexité, avant d’envisager une migration.

Conclusion

N’étant pas destiné au même usage, certains critères sont déterminants dans le choix du système de gestion de base de données. Il faut penser au volume de données à traiter et à son évolution avec le temps avant de choisir son gestionnaire de base. En effet, comme nous l’avons vu, sur des architectures avec peu de données, MySQL est plus rapide et simple à mettre en place.

Bien que MySQL tant à évoluer dans ce sens, PostGreSQL, de par sa structure possède déjà le bon format et les fonctionnalités pour le traitement de gros volume dans une application d’entreprise. Cependant, il possède des limites. Il nécessite de bonnes connaissances en administration système pour faire tourner une base de données de manière efficace et sa rigueur au niveau du code peut poser problèmes lors de sa prise en main. Il est donc primordial de poser les besoins et l’évolution de son projet afin de choisir la base de données la plus adaptée.

2019-01-31T09:41:28+02:00