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