Choisir un moteur de stockage MySQL

 
 

Les paramètres à prendre en considération, dans le choix de son moteur de stockage, reposent principalement sur les caractéristiques de vos applications. Chaque moteur a ses avantages et ses inconvénients.

Un moteur qui supporte les transactions va, par exemple :

  • être plus résistant aux pannes (matérielles…) ;
  • avoir une meilleure concurrence ;
  • offrir davantage de flexibilité (commit, rollback) ;
  • nécessiter davantage de ressources : le moteur a, entre autres, besoin d’un système disque plus puissant pour supporter les nombreuses écritures.

Au contraire, un moteur qui ne prend pas en charge les transactions peut être plus rapide. Ce n’est pas une certitude puisque les performances dépendent du type de requêtes, des index et de l’application elle-même.

Dans tous les cas, un moteur non transactionnel :

  • nécessitera moins d’espace disque ;
  • sera moins gourmand en mémoire ;
  • mais sera moins résistant aux pannes.

Les principaux critères pour choisir son moteur sont les suivants :

  • le support des transactions ;
  • la concurrence : lorsqu’un nombre conséquent de clients accèdent aux mêmes tables ou données, la façon dont le moteur gère les verrous a une grande influence sur la concurrence du moteur ;
  • les contraintes d’intégrité (clés étrangères) : une contrainte d’intégrité renforce l’intégrité des données en base. Prenons comme exemple un modèle relationnel classique 1-N et partons du principe qu’une personne possède une et une seule adresse. La contrainte d’intégrité va s’assurer que chaque nouvelle adresse est bien associée à une personne présente dans la base. Le développeur choisit où il doit implémenter sa contrainte : soit au niveau de l’applicatif soit au niveau de la base de données ;
  • le stockage physique sur le disque dur, la taille des blocs…
  • les types d’index supportés (B-tree, fulltext, hash…). Retenez pour le moment qu’une bonne gestion des index est cruciale pour obtenir de bonnes performances de la part de la base de données. Nous verrons de plus que chaque moteur implémente les index à sa façon. Nous étudierons leurs points communs et différences, en examinant, notamment entre MyISAM et InnoDB
    • la gestion de la mémoire ;
    • les performances ;
    • les propriétés spécifiques.
Nos formations MySQL