Maison > Article > base de données > quelle est la différence entre les moteurs de stockage MySQL
Différences entre les moteurs de stockage MySQL : 1. MyISAM ne prend pas en charge les transactions et les verrous au niveau des lignes, tandis qu'InnoDB prend en charge les transactions et les verrous au niveau des lignes ; 2. InnoDB prend en charge MVCC et les clés étrangères, tandis que MyISAM ne prend pas en charge MVCC et les clés étrangères. clé.
L'environnement d'exploitation de ce tutoriel : système windows10, version mysql8.0.22, ordinateur Dell G3.
InnoDB prend en charge les transactions, tandis que MyISAM ne prend pas en charge les transactions
InnoDB prend en charge les verrous au niveau des lignes, tandis que MyISAM prend en charge les verrous au niveau des tables
InnoDB prend en charge MVCC, tandis que MyISAM n'est pas pris en charge
InnoDB prend en charge les clés étrangères, tandis que MyISAM ne prend pas en charge les trois moteurs de stockage myisam, innodb et la mémoire dans mysql
MySQL 1) Ma table de non-transaction de gestion ISAM. Fournit 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 MySQL est configuré pour utiliser un autre moteur par défaut. 2) 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. 3) InnoDB et les moteurs de stockage fournissent des tables de sécurité des transactions, qui sont incluses par défaut dans toutes les distributions binaires MySQL 5.1. Vous pouvez configurer MySQL pour autoriser ou désactiver l'un ou l'autre moteur selon vos préférences.
2. Introduction aux points de fonction
1) Moteur de stockage MyISAMLe moteur de stockage MyISAM ne prend pas en charge les transactions, ne prend pas en charge les verrous au niveau des lignes, ne prend en charge que les verrous de table d'insertion simultanés et est principalement utilisé pour une charge élevée, sélectionnez . Les tables de type Myisam prennent en charge trois structures de stockage différentes : statique, dynamique et compressée. (1) Type statique : la taille de la colonne de table définie est fixe (c'est-à-dire qu'elle ne contient pas de types de données de longueur variable tels que xblob, xtext, varchar, etc.), donc MySQL utilisera automatiquement le myisam statique format.
Les performances des tables utilisant des formats statiques sont relativement élevées car la surcharge requise pour stocker les données dans un format prédéterminé lors de la maintenance et de l'accès est très faible. Mais cette haute performance vient en échange de l'espace, car elle est fixe lorsqu'elle est définie, donc quelle que soit la taille de la valeur dans la colonne, la valeur maximale prévaudra et occupera tout l'espace. (2) Type dynamique : Si une colonne (même s'il n'y a qu'une seule colonne) est définie comme dynamique (xblob, xtext, varchar et autres types de données), alors myisam utilisera automatiquement le type dynamique, bien que la table de types dynamiques prend plus de place que la table de type statique Moins d'espace, mais des performances inférieures, car si le contenu d'un champ change, sa position devra probablement être déplacée, ce qui entraînera une fragmentation. À mesure que les données changent, la fragmentation augmentera et les performances d'accès aux données diminueront en conséquence.
(3) Type compressé : Si une table créée dans cette base de données est en lecture seule pendant tout le cycle de vie, dans ce cas, la table compressée de myisam est utilisée pour réduire l'espace occupé.
2) Moteur de stockage MÉMOIRE :(1) Le moteur de stockage mémoire est un peu différent des moteurs de stockage précédents. Il utilise les données qui y sont stockées pour créer des tables, et toutes les données sont également stockées en mémoire.
(2) Chaque table basée sur le moteur de stockage mémoire correspond en fait à un fichier disque. Le nom de fichier et le nom de table du fichier sont les mêmes et le type est .frm. Ce fichier stocke uniquement la structure de la table et ses fichiers de données sont stockés en mémoire, ce qui favorise un traitement rapide des données et améliore les capacités de traitement de l'ensemble de la table.
(3) Le moteur de stockage mémoire utilise l'index de hachage (HASH) par défaut, ce qui est plus rapide que l'utilisation du type B-+Tree. Si les lecteurs souhaitent utiliser le type B-tree, ils peuvent le référencer lors de la création.
(4) Les données du fichier du moteur de stockage en mémoire sont stockées dans la mémoire Si une exception se produit dans le processus mysqld, les données disparaîtront si la machine est redémarrée ou arrêtée. Par conséquent, le cycle de vie des tables dans le moteur de stockage mémoire est très court et n’est généralement utilisé qu’une seule fois.
3) Moteur de stockage innoDB :(1) Moteur de stockage innodb Cette table mysql assure la sécurité des transactions avec des capacités de transaction, de restauration et de réparation des pannes du système et un contrôle des rafales multi-versions.
(2) innodb prend en charge les colonnes à incrémentation automatique (auto_increment). La valeur d'une colonne à incrémentation automatique ne peut pas être vide si elle est vide lorsqu'elle est utilisée, comment la valeur existante peut-elle être automatiquement enregistrée et commencer à augmenter en valeur ? il y en a, elle est toujours supérieure à la valeur actuelle. Si elle est grande, cette valeur sera enregistrée.
(3) Le moteur de stockage innodb prend en charge les clés étrangères. La table où se trouve la clé étrangère est appelée table enfant et la table dont elle dépend est appelée table parent.
(4) La chose la plus importante à propos du moteur de stockage innodb est qu'il prend en charge les transactions et les fonctions liées aux transactions. (5) Le moteur de stockage innodb prend en charge les verrous au niveau des lignes mvcc.
Apprentissage recommandé :
Tutoriel vidéo mysqlCe 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!