La différence entre InnoDB et MyISAM dans MySQL
Transactions et clés étrangères
InnoDB propose des transactions, prenant en charge 4 niveaux d'isolation des transactions, des capacités de restauration, de récupération après incident et une sécurité des transactions simultanées multi-versions, y compris ACID. Si votre application doit effectuer un grand nombre d'opérations INSERT ou UPDATE, vous devez utiliser InnoDB, qui peut améliorer les performances des opérations simultanées multi-utilisateurs
MyISAM gère les tables non transactionnelles. Il offre un stockage et une récupération à grande vitesse, ainsi que des capacités de recherche en texte intégral. Si l'application doit exécuter un grand nombre de requêtes SELECT, alors MyISAM est un meilleur choix
2. Index en texte intégral
Innodb ne prend pas en charge le texte intégral index, si vous devez l'utiliser, il est préférable d'utiliser des moteurs de recherche tels que sphinx. Myisam ne supporte pas très bien le chinois
Mais la nouvelle version d'Innodb le prend déjà en charge
3 Lock
mysql prend en charge trois niveaux de verrouillage. niveau, niveau page, niveau table ;
MyISAM prend en charge le verrouillage au niveau de la table et fournit une lecture non verrouillable dans les SELECT cohérents avec le type Oracle
InnoDB prend en charge les verrous au niveau des lignes, les verrous de lignes des tables InnoDB sont 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. Faites attention à l'impact des verrous d'espacement
Par exemple, mettez à jour l'ensemble de tables num=. 1 où le nom comme « %aaa% »
4. Stockage
MyISAM est stocké dans 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 la définition de la table. L'extension du fichier de données est .MYD.
InnoDB. 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
. Remarque : les tables MyISAM sont enregistrées sous forme de fichiers. L'utilisation du stockage MyISAM dans le transfert de données multiplateforme évitera bien des problèmes
Index
Utilisation d'InnoDB (table organisée d'index) L'index clusterisé et l'index sont des données qui sont stockées séquentiellement, de sorte que l'index peut être mis en cache, et les données peuvent également être mises en cache MyISAM (table organisée en tas) utilise un index non clusterisé, l'index est séparé du fichier, est stocké de manière aléatoire et ne peut mettre en cache que l'index6. Concurrence
Bloc de lecture et d'écriture MyISAM les uns les autres : non seulement il bloquera la lecture lors de l'écriture, MyISAM bloquera également l'écriture lors de la lecture. Le blocage de la lecture et de l'écriture d'InnoDB est lié au niveau d'isolement des transactions Tutoriels recommandés : "Tutoriel PHP
"Tutoriel MySQL》
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!