Maison  >  Article  >  base de données  >  Quelle est la différence entre innodb et myisam dans MySQL ?

Quelle est la différence entre innodb et myisam dans MySQL ?

青灯夜游
青灯夜游original
2020-07-25 14:13:134099parcourir

Différences : 1. MyISAM ne prend pas en charge les transactions, contrairement à InnoDB. 2. InnoDB prend en charge le verrouillage des lignes de données, tandis que MyISAM ne prend pas en charge le verrouillage des lignes et prend uniquement en charge le verrouillage de la table entière. 3. InnoDB prend en charge les clés étrangères, mais pas MyISAM. 4. La gamme de clés primaires d'InnoDB est plus grande, jusqu'à 2 fois celle de MyISAM.

Quelle est la différence entre innodb et myisam dans MySQL ?

La différence entre MyISAM et InnoDB

MySQL utilise MyISAM par défaut.

MyISAM ne prend pas en charge les transactions, contrairement à InnoDB. AUTOCOMMIT d'InnoDB est activé par défaut, c'est-à-dire que chaque instruction SQL sera encapsulée dans une transaction par défaut et automatiquement soumise. Cela affectera la vitesse, il est donc préférable d'afficher plusieurs instructions SQL entre le début et la validation pour former une transaction. Allez soumettre.

InnoDB prend en charge le verrouillage des lignes de données, tandis que MyISAM ne prend pas en charge le verrouillage des lignes et prend uniquement en charge le verrouillage de la table entière. Autrement dit, les verrous de lecture et d'écriture sur la même table MyISAM s'excluent mutuellement lorsque MyISAM lit et écrit simultanément, s'il y a à la fois des demandes de lecture et des demandes d'écriture dans la file d'attente, la demande d'écriture par défaut a une priorité plus élevée, même si la demande d'écriture par défaut a une priorité plus élevée. La demande de lecture arrive en premier, donc MyISAM n'est pas adapté aux situations où un grand nombre de requêtes et de modifications coexistent, car le processus de requête sera bloqué pendant une longue période. Étant donné que MyISAM est une table de verrouillage, une opération de lecture fastidieuse privera les autres processus d'écriture.

InnoDB prend en charge les clés étrangères, mais pas MyISAM.

La gamme de clés primaires d'InnoDB est plus grande, jusqu'à 2 fois celle de MyISAM.

InnoDB ne prend pas en charge l'indexation de texte intégral, contrairement à MyISAM. L'indexation de texte intégral fait référence à l'établissement d'un index trié inverse pour chaque mot de char, varchar et texte (à l'exception des mots vides). L'index de texte intégral de MyISAM est en fait inutile car il ne prend pas en charge la segmentation des mots chinois. L'utilisateur doit ajouter des espaces après la segmentation des mots, puis les écrire dans le tableau de données. De plus, les mots contenant moins de 4 caractères chinois seront ignorés comme les mots vides.

MyISAM prend en charge les données SIG, mais pas InnoDB. Autrement dit, MyISAM prend en charge les objets de données spatiales suivants : point, ligne, polygone, surface, etc.

Count(*) sans où utilise MyISAM beaucoup plus rapidement qu'InnoDB. Parce que MyISAM a un compteur intégré, il lit directement à partir du compteur lors du comptage (*), tandis qu'InnoDB doit analyser la table entière. Par conséquent, lors de l'exécution de count(*) sur InnoDB, il est généralement accompagné de où, et où doit contenir des colonnes d'index autres que la clé primaire. Pourquoi y a-t-il ici un accent particulier sur « autre que la clé primaire » ? Parce que l'index primaire dans InnoDB est stocké avec les données brutes, tandis que l'index secondaire est stocké séparément, et il y a ensuite un pointeur pointant vers la clé primaire. Par conséquent, s'il s'agit simplement de count(*), il est plus rapide d'utiliser l'index secondaire pour analyser, tandis que la clé primaire est principalement utilisée pour analyser l'index et renvoyer des données brutes en même temps.

Apprentissage recommandé : 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!

Déclaration:
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