Maison > base de données > tutoriel mysql > La différence entre InnoDB et MyISAM dans MySQL

La différence entre InnoDB et MyISAM dans MySQL

Guanhui
Libérer: 2020-06-04 11:01:03
original
2934 Les gens l'ont consulté

La différence entre InnoDB et MyISAM dans MySQL

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'index

6. 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal