Maison > Article > base de données > Combien de moteurs de stockage y a-t-il dans MySQL ?
Exécutez la commande suivante pour afficher tous les moteurs de stockage MySQL [Tutoriel recommandé : Tutoriel MySQL]
Moteur de stockage InnoDB
InnoDB est le moteur préféré pour les bases de données transactionnelles. Il prend en charge les tables de sécurité des transactions (ACID), le verrouillage des lignes et les clés étrangères. Comme vous pouvez le voir dans la figure ci-dessus, InnoDB est le moteur MySQL par défaut. Les principales fonctionnalités d'InnoDB sont :
1. InnoDB fournit à MySQL un moteur de stockage sécurisé pour les transactions (compatible ACID) avec des capacités de validation, de restauration et de récupération après incident. InnoDB se verrouille au niveau de la ligne et fournit également une lecture non verrouillable de type Oracle dans l'instruction SELECT. Ces fonctionnalités augmentent le déploiement et les performances multi-utilisateurs. Dans les requêtes SQL, vous pouvez librement mélanger des tables de type InnoDB avec d'autres types de tables MySQL, même dans la même requête
2. InnoDB est conçu pour des performances maximales dans le traitement d'énormes quantités de données. Son efficacité CPU peut être inégalée par tout autre verrouillage de moteur de base de données relationnelle sur disque
3. Le moteur de stockage InnoDB est entièrement intégré au serveur MySQL. Le moteur de stockage InnoDB est maintenu pour la mise en cache des données et des index dans la mémoire principale. . son propre pool tampon. InnoDB place ses tables et index dans un espace table logique, qui peut contenir plusieurs fichiers (ou fichiers disque bruts). Ceci est différent des tables MyISAM, où chaque table est stockée dans un fichier séparé. Les tables InnoDB peuvent être de n'importe quelle taille, même sur les systèmes d'exploitation où la taille du fichier est limitée à 2 Go
4. InnoDB prend en charge les contraintes d'intégrité des clés étrangères Lors du stockage des données dans la table, chaque table est stockée en fonction de la table primaire. key Stockage séquentiel. Si la clé primaire n'est pas spécifiée dans la définition de la table, InnoDB générera un ROWID de 6 octets pour chaque ligne et l'utilisera comme clé primaire
5. InnoDB est utilisé dans de nombreuses grandes bases de données qui nécessitent des performances élevées
InnoDB ne crée pas de répertoire sur le site. Lors de l'utilisation d'InnoDB, MySQL créera un fichier de données automatiquement étendu de 10 Mo nommé ibdata1 et deux de 5 Mo nommés ib_logfile0 et ib_logfile1 dans le répertoire de données MySQL <.>
Moteur de stockage MyISAM MyISAM est basé sur le moteur de stockage ISAM et l'étend. Il s'agit de l'un des moteurs de stockage les plus couramment utilisés dans les environnements Web, d'entreposage de données et autres environnements d'application. MyISAM a une vitesse d'insertion et de requête élevée, mais ne prend pas en charge les transactions. Les principales fonctionnalités de MyISAM sont : 1. Les fichiers volumineux (jusqu'à 63 bits de longueur) sont pris en charge sur les systèmes de fichiers et les systèmes d'exploitation qui prennent en charge les fichiers volumineux 2. et l'insertion de lignes de taille dynamique produit moins de fragmentation lorsque les opérations sont mélangées. Cela se fait automatiquement en fusionnant les blocs supprimés adjacents, et si le bloc suivant est supprimé, en s'étendant au bloc suivant 3. Le nombre maximum d'index pour chaque table MyISAM est de 64, ce qui peut être obtenu en recompilant Change . Le nombre maximum de colonnes par index est de 164. La longueur maximale de clé est de 1 000 octets. Cela peut également être modifié par compilation. Pour les longueurs de clé supérieures à 250 octets, une longueur de clé supérieure à 1 024 octets sera utilisée. 5. Les colonnes BLOB et TEXT peuvent être indexées 6. NULL est autorisé dans les colonnes indexées. Cette valeur occupe 0 à 1 octets de chaque clé 7. les valeurs des clés numériques sont d'abord stockées en gros octets pour permettre une compression d'index plus élevée 8. Chaque table de type MyISAM a une colonne interne de AUTO_INCREMENT. Cette colonne est mise à jour lors des opérations INSERT et UPDATE, et AUTO_INCREMENT. la colonne sera actualisée. Par conséquent, la colonne AUTO_INCREMENT de la table de type MyISAM est mise à jour plus rapidement que la colonne AUTO_INCREMENT de type InnoDB 9 Les fichiers de données et les fichiers d'index peuvent être placés dans des répertoires différents 10. peut avoir différents jeux de caractères11. Les tables avec VARCHAR peuvent avoir des longueurs d'enregistrement fixes ou dynamiques12 Les colonnes VARCHAR et CHAR peuvent atteindre 64 KoUtilisez le moteur MyISAM. pour créer une base de données, 3 fichiers seront générés. Le nom du fichier commence par le nom de la table et l'extension est le type de fichier : définition de la table de stockage de fichiers frm, l'extension du fichier de données est. MYD (MYData), l'extension du fichier d'index. MYI (MYIndex) Moteur de stockage MEMORY Le moteur de stockage MEMORY stocke les données de la table en mémoire, offrant un accès rapide sans interroger ni référencer d'autres données de la table. Les principales fonctionnalités de MEMORY sont : 1. Chaque table MEMORY peut avoir jusqu'à 32 index, 16 colonnes par index et une longueur de clé maximale de 500 octets 2. effectue la micronisation HASH et BTREE 3. Vous pouvez avoir des valeurs de clé non uniques dans une table MEMORY 4 La table MEMORY utilise un format de longueur d'enregistrement fixe . 5 , MEMORY ne prend pas en charge les colonnes BLOB ou TEXT 6. MEMORY prend en charge les colonnes AUTO_INCREMENT et les index sur les colonnes pouvant contenir des valeurs NULL 7. Les tables MEMORY sont partagées entre tous les clients (juste Comme toute autre table non TEMPORAIRE)8. La mémoire de la table MEMORY est stockée en mémoire entre la table MEMORY et les tables internes créées par le serveur lorsqu'il est inactif pendant le traitement des requêtes9 . Lorsque le contenu de la table MEMORY n'est plus nécessaire, pour libérer la mémoire utilisée par la table MEMORY, vous devez exécuter DELETE FROM ou TRUNCATE TABLE, ou supprimer la table entière (en utilisant DROP TABLE) Sélection du moteur de stockage
Si vous souhaitez fournir des capacités de sécurité des transactions (compatibilité ACID) de validation, de restauration, de récupération après incident et exiger un contrôle de concurrence, InnoDB est un bon choix
Si le La table de données est principalement utilisée pour insérer et interroger des enregistrements, le moteur MyISAM peut fournir une efficacité de traitement plus élevée
Si les données ne sont stockées que temporairement, la quantité de données n'est pas importante et une sécurité élevée des données n'est pas requise, vous peut choisir Moteur de mémoire qui enregistre les données en mémoire. Ce moteur est utilisé comme table temporaire dans MySQL pour stocker les résultats intermédiaires de la requête
S'il n'y a que des opérations INSERT et SELECT, vous pouvez choisir Archive Supports d'archive. Opérations d'insertion à haute concurrence, mais non sécurisées sur le plan transactionnel en soi. Archive est très approprié pour stocker des données archivées. Par exemple, vous pouvez utiliser Archive
pour enregistrer les informations de journal. Le moteur à utiliser doit être choisi de manière flexible. Plusieurs tables d'une base de données peuvent utiliser différents moteurs pour répondre à différentes performances. et les besoins réels. Utilisez celui qui convient. Le moteur de stockage améliorera les performances de l'ensemble de la base de données.
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!