MyISAM
InnoDB
La différence de composition :
Chaque MyISAM est stocké sous forme de trois fichiers sur le disque. Le nom du premier fichier commence par le nom de la table et l'extension indique le type de fichier.
Le fichier .frm stocke les définitions de table.
L'extension du fichier de données est .MYD (MYData).
L'extension du fichier d'index est .MYI (MYIndex).
Les ressources basées sur le disque sont le fichier de données de l'espace table InnoDB et son fichier journal. La taille de la table InnoDB n'est limitée que par la taille du fichier du système d'exploitation, généralement 2 Go
Traitement des transactions :
La table de type MyISAM met l'accent sur les performances et ses temps d'exécution sont plus rapides que le type InnoDB, mais ne fournit pas de prise en charge des transactions
InnoDB fournit une prise en charge des transactions, des clés étrangères et d'autres fonctions de base de données avancées
SELECT UPDATE, INSERT, Supprimeropérations
Si vos données effectuent beaucoup de SELECT, MyISAM est un meilleur choix
1.Si vos données effectuent beaucoup de INSERT ou UPDATE, pour des raisons de performances, la table InnoDB
2.DELETE FROM table doit être utilisée, InnoDB ne sera pas Re- créez le tableau et supprimez-le ligne par ligne. L'opération
3.LOAD TABLE FROM MASTER ne fonctionne pas pour InnoDB. La solution consiste d'abord à changer la table InnoDB en table MyISAM, à importer les données, puis à la changer en table InnoDB. , mais pour les tables qui utilisent des fonctionnalités InnoDB supplémentaires (telles que les clés étrangères), n'appliquez pas
aux opérations AUTO_INCREMENT
par Gestion interne d'une colonne AUTO_INCREMEN dans une table.
MyISAM se met automatiquement à jour pour les opérations INSERT et UPDATE Cette chronique . Cela rend les colonnes AUTO_INCREMENT plus rapides (au moins 10 %). Une fois la valeur en haut de la séquence supprimée, elle ne peut plus être utilisée. (Lorsque la colonne AUTO_INCREMENT est définie comme dernière colonne d'un index multi-colonnes, il est possible de réutiliser des valeurs supprimées du haut de la séquence).
La valeur AUTO_INCREMENT peut être réinitialisée avec ALTER TABLE ou myisamch
Pour les champs de type AUTO_INCREMENT, InnoDB doit contenir un index de ce champ uniquement, mais dans la table MyISAM, il peut être créé avec d'autres field Index Union
Gestion de l'auto_increment meilleure et plus rapide
Si vous spécifiez la colonne AUTO_INCREMENT pour une table, le handle de table InnoDB dans le dictionnaire de données contient un compteur appelé compteur d'auto-incrémentation, qui est utilisé pour attribuer une nouvelle valeur à la colonne.
Le compteur à incrémentation automatique n'est stocké que dans la mémoire principale, pas sur le disque
Pour l'implémentation de l'algorithme de cette calculatrice, veuillez vous référer à
Comment fonctionne la colonne AUTO_INCREMENT dans InnoDB
Le nombre spécifique de lignes dans le tableau
Sélectionnez count(*) dans la table, MyISAM lit simplement le nombre de lignes enregistrées. Notez que lorsque l'instruction count(*) contient des conditions Where, les opérations des deux tables sont les mêmes
<.> InnoDB n'enregistre pas le nombre spécifique de lignes dans la table, c'est-à-dire que lors de l'exécution de select count(*) from table, InnoDB doit analyser la table entière pour calculer le nombre de lignes
Lock
Verrouillage de table
Fournit un verrouillage de ligne (verrouillage au niveau de la ligne) et une lecture non verrouillable dans les
SELECT) cohérents avec le type Oracle. le verrouillage des lignes de la table InnoDB n'est pas absolu. Si MySQL ne peut pas déterminer la plage à analyser lors de l'exécution d'une instruction SQL, la table InnoDB verrouillera également la table entière, par exemple, mettre à jour l'ensemble de tables num=1 où le nom est comme « %aaa ». %”
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!