72 votes

Que sont les moteurs de base de données MySQL ?

J'ai fait des recherches et j'ai trouvé que certains des moteurs MySQL sont innodb et MyISAM. Il en existe peut-être d'autres. Ma question est la suivante : quels sont ces moteurs de base de données ?

Quelles sont les différences entre les différents moteurs MySQL ? Et plus important encore, comment puis-je décider lequel utiliser ?

75voto

Vincent Savard Points 12215
mysql> SHOW ENGINES;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+

Personnellement, j'utilise toujours InnoDB si je dois utiliser MySQL. Elle prend en charge les transactions et les clés étrangères, ce qui n'est pas le cas de MyISAM.

41voto

GolezTrol Points 54531

MyISAM et InnoDB sont les moteurs les plus couramment utilisés.

MyISAM est légèrement plus rapide qu'InnoDB, et implémente l'index FULLTEXT qui est très utile pour intégrer des capacités de recherche. MyISAM n'est pas transactionnel et n'implémente pas les contraintes de clé étrangère, ce qui est un inconvénient majeur.

Mais vous pouvez utiliser le meilleur des deux et créer des tables avec différents moteurs de stockage. Certains logiciels (WordPress, je crois) utilisent Inno pour la plupart des données, comme les relations entre les pages, les versions, etc. Les enregistrements pour les articles contiennent un ID qui renvoie à un enregistrement dans une table de contenu séparée qui utilise MyISAM. De cette façon, le contenu est stocké dans la table qui offre les meilleures capacités de recherche, tandis que la plupart des autres données sont stockées dans des tables qui assurent l'intégrité des données.

Si j'étais vous, je choisirais Inno, car c'est le plus fiable. N'utilisez MyISAM qu'à des fins spécifiques si vous en avez besoin.

Vous pouvez configurer votre base de données pour utiliser InnoDB par défaut lors de la création de nouvelles tables.

15voto

rajangupta Points 920

Différents moteurs de stockage disponibles, il y a peu de raisons de ne pas utiliser les types de moteurs MyISAM ou InnoDB. MyISAM fera l'affaire dans la plupart des situations, mais si vous avez un nombre élevé de mises à jour ou d'insertions par rapport à vos recherches et sélections, vous obtiendrez de meilleures performances avec le moteur InnoDB. Pour obtenir les meilleures performances d'InnoDB, vous devez ajuster les paramètres de votre serveur, sinon il n'y a aucune raison de ne pas l'utiliser.

Le moteur MERGE est un moyen extrêmement efficace d'interroger des données provenant de plusieurs tables définies de manière identique. Le moteur MEMORY est le meilleur moyen d'effectuer un grand nombre de requêtes complexes sur des données qu'il serait inefficace de rechercher sur un moteur basé sur disque. Le moteur CSV est un excellent moyen d'exporter des données qui pourraient être utilisées dans d'autres applications. BDB est excellent pour les données qui ont une clé unique à laquelle on accède fréquemment.

This Image provides an overview of some storage engines provided with MySQL:

1voto

Mogli Points 374

Vous obtiendrez peut-être plus d'informations ici : https://en.wikipedia.org/wiki/Database_engine

Un moteur de base de données (ou moteur de stockage) est le composant logiciel sous-jacent qu'un système de gestion de base de données (SGBD) utilise pour créer, lire, mettre à jour et supprimer (CRUD) des données dans une base de données. La plupart des systèmes de gestion de bases de données comprennent leur propre interface de programmation d'applications (API) qui permet à l'utilisateur d'interagir avec leur moteur sous-jacent sans passer par l'interface utilisateur du SGBD.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X