Maison >base de données >tutoriel mysql >Qu'est-ce que le moteur de stockage MySQL ? (explication détaillée)
Cet article vous présente principalement ce qu'est le moteur de stockage MySQL. Vous pouvez également vous référer au Tutoriel vidéo MySQL ou au Manuel MySQL pour apprendre.
MySQL dispose d'une variété de moteurs de stockage. Chaque moteur de stockage a ses propres avantages et inconvénients. Vous pouvez choisir le meilleur à utiliser : MyISAM, InnoDB, MERGE, MEMORY (HEAP), BDB (BerkeleyDB), EXAMPLE. , FÉDÉRÉ, ARCHIVE, CSV, BLACKHOLE.
MySQL prend en charge plusieurs moteurs de stockage en tant que processeurs pour différents types de tables. Le moteur de stockage MySQL comprend un moteur de traitement des tables sécurisées pour les transactions et un moteur pour le traitement des tables non sécurisées pour les transactions :
MyISAM gère les tables non sécurisées pour les transactions. Il offre un stockage et une récupération à grande vitesse, ainsi que des capacités de recherche en texte intégral. MyISAM est pris en charge dans toutes les configurations MySQL et constitue le moteur de stockage par défaut, sauf si vous configurez MySQL pour utiliser un autre moteur par défaut.
Le moteur de stockage MEMORY fournit des tables "en mémoire". Le moteur de stockage MERGE permet de traiter les collections sur la même table MyISAM comme une seule table. Tout comme MyISAM, les moteurs de stockage MEMORY et MERGE gèrent les tables non transactionnelles, et les deux moteurs sont inclus par défaut dans MySQL.
Remarque : Le moteur de stockage MEMORY est officiellement identifié comme le moteur HEAP.
Les moteurs de stockage InnoDB et BDB fournissent des tables sécurisées pour les transactions. BDB est inclus dans les distributions binaires MySQL-Max publiées pour les systèmes d'exploitation qui le prennent en charge. InnoDB est également inclus par défaut dans toutes les distributions binaires MySQL 5.1, et vous pouvez configurer MySQL pour autoriser ou désactiver l'un ou l'autre moteur selon vos préférences.
Le moteur de stockage EXEMPLE est un moteur "stub", il ne fait rien. Vous pouvez créer des tables avec ce moteur, mais aucune donnée n'y est stockée ou extraite. Le but de ce moteur est de servir d'exemple dans le code source MySQL, qui montre comment commencer à écrire un nouveau moteur de stockage. Là encore, son principal intérêt réside dans les développeurs.
NDB Cluster est le moteur de stockage utilisé par MySQL Cluster pour implémenter des tables réparties sur plusieurs ordinateurs. Il est fourni dans la distribution binaire MySQL-Max 5.1. Ce moteur de stockage n'est actuellement pris en charge que par Linux, Solaris et Mac OS X. Dans une future distribution MySQL, nous aimerions ajouter le support de ce moteur sur d'autres plateformes, dont Windows.
Le moteur de stockage ARCHIVE est utilisé pour couvrir très légèrement de grandes quantités de données stockées sans indexation.
Le moteur de stockage CSV stocke les données dans des fichiers texte au format délimité par des virgules.
Le moteur de stockage BLACKHOLE accepte mais ne stocke pas les données, et la récupération renvoie toujours un ensemble vide.
Le moteur de stockage FEDERATED stocke les données dans des bases de données distantes. Dans MySQL 5.1, cela fonctionne uniquement avec MySQL, en utilisant l'API client MySQL C. Dans une future distribution, nous souhaitons qu'il se connecte à des sources de données supplémentaires en utilisant d'autres pilotes ou méthodes de connexion client.
Lorsque vous créez une nouvelle table, vous pouvez indiquer à MySQL quel type de table vous souhaitez créer en ajoutant une option ENGINE ou TYPE à l'instruction CREATE TABLE :
CREATE TABLE t (i INT) ENGINE = INNODB; CREATE TABLE t (i INT) TYPE = MEMORY;
While TYPE Still pris en charge dans MySQL 5.1, ENGINE est désormais le terme préféré.
Cet article est une introduction au moteur de stockage MySQL. J'espère qu'il sera utile aux amis dans le besoin !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!