Quelle est la différence entre MyISAM et InnoDB dans MySQL
Différences : 1. InnoDB prend en charge les transactions, mais pas MyISAM. 2. InnoDB prend en charge les clés étrangères, mais pas MyISAM. 3. InnoDB est un index clusterisé, tandis que MyISAM est un index non clusterisé. les index de texte intégral, mais MyISAM le fait. 5. InnoDB prend en charge les verrous au niveau des tables et des lignes, tandis que MyISAM prend en charge les verrous au niveau des tables ; 6. Les tables InnoDB doivent avoir des index uniques, mais Myisam n'en a pas besoin ; . Les fichiers de stockage sont différents.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
InnoDB : le moteur transactionnel par défaut de MySQL et le moteur de stockage le plus important et le plus utilisé. Il est conçu pour traiter un grand nombre de transactions à court terme. Dans la plupart des cas, les transactions à court terme sont soumises normalement et sont rarement annulées. Les performances d'InnoDB et ses fonctionnalités de récupération automatique en cas de crash le rendent populaire pour les besoins de stockage non transactionnel. Sauf raison très particulière d’utiliser un autre moteur de stockage, le moteur InnoDB doit être prioritaire.
MyISAM : dans MySQL 5.1 et les versions antérieures, MyISAM est le moteur par défaut. MyISAM fournit un grand nombre de fonctionnalités, notamment l'indexation de texte intégral, la compression, les fonctions spatiales (SIG), etc., mais MyISAM ne prend pas en charge les transactions et les verrous au niveau des lignes, et un défaut incontestable est qu'il ne peut pas être récupéré en toute sécurité après une accident.
La différence entre MyISAM et InnoDB dans MySQL :
1. InnoDB prend en charge les transactions, MyISAM ne le fait pas. Pour InnoDB, chaque langage SQL est encapsulé dans une transaction par défaut et automatiquement soumis. Cela affectera la vitesse. , il est donc préférable de placer plusieurs instructions SQL entre start et commit pour former une transaction ;
2 InnoDB prend en charge les clés étrangères, mais pas MyISAM. La conversion d'une table InnoDB contenant des clés étrangères en MYISAM échouera ;
3. InnoDB est un index clusterisé, utilisant B+Tree comme structure d'index, et le fichier de données est lié à l'index (clé primaire) (les données de la table). fichier lui-même C'est une structure d'index organisée par B+Tree), il doit avoir une clé primaire, et l'indexation via la clé primaire est très efficace. Cependant, l'index auxiliaire nécessite deux requêtes, d'abord pour interroger la clé primaire, puis pour interroger les données via la clé primaire. Par conséquent, la clé primaire ne doit pas être trop grande, car si la clé primaire est trop grande, les autres index le seront également.
MyISAM est un index non clusterisé et utilise également B+Tree comme structure d'index. L'index et les fichiers de données sont séparés, et l'index enregistre le pointeur du fichier de données. Les index de clé primaire et les index secondaires sont indépendants.
C'est-à-dire : les nœuds feuilles de l'index de clé primaire de l'arbre B+ d'InnoDB sont les fichiers de données, et les nœuds feuilles de l'index auxiliaire sont les valeurs de la clé primaire tandis que les nœuds feuilles de la clé primaire de l'arbre B+ de MyISAM ; l'index et l'index auxiliaire sont les pointeurs d'adresse des fichiers de données.
4. InnoDB n'enregistre pas le nombre spécifique de lignes dans la table et une analyse complète de la table est requise lors de l'exécution de select count(*) from table. MyISAM utilise une variable pour enregistrer le nombre de lignes dans le tableau entier. Lors de l'exécution de l'instruction ci-dessus, il vous suffit de lire la variable, ce qui est très rapide (notez qu'aucune condition WHERE ne peut être ajoutée
Alors pourquoi) ; InnoDB n'a pas cette variable ?
En raison des caractéristiques de transaction d'InnoDB, le nombre de lignes dans le même calendrier est différent pour différentes transactions, donc les statistiques de comptage calculeront le nombre de lignes pouvant être comptées pour la transaction en cours au lieu de stocker le nombre total de lignes. C’est pratique pour une requête rapide. InnoDB essaiera de parcourir le plus petit index possible à moins que l'optimiseur ne vous invite à utiliser un autre index. Si l'index secondaire n'existe pas, InnoDB tentera également de parcourir d'autres index clusterisés.
Si l'index n'est pas complètement dans le buffer maintenu par InnoDB (Buffer Pool), l'opération de comptage prendra plus de temps. Vous pouvez créer un tableau qui enregistre le nombre total de lignes et laisser votre programme mettre à jour les données correspondantes lors de INSERT/DELETE. Comme le problème mentionné ci-dessus, cette solution n’est pas très utile s’il y a plusieurs transactions à ce moment-là. Si la valeur approximative de la ligne est suffisante pour répondre à vos besoins, vous pouvez essayer SHOW TABLE STATUS
5. Innodb ne prend pas en charge l'indexation en texte intégral, mais MyISAM prend en charge l'indexation en texte intégral. MyISAM est de plus en plus rapide en termes d'efficacité des requêtes. indexation en texte intégral ; PS : InnoDB après 5.7 prend en charge l'index en texte intégral
6. Les tables MyISAM peuvent être compressées pour les opérations de requête
7. InnoDB prend en charge les verrous de niveau de table et de ligne (par défaut), tandis que MyISAM prend en charge les verrous de niveau de table. -verrous de niveau
? Le verrouillage de ligne d'InnoDB implémenté sur l'index, plutôt que sur l'enregistrement de ligne physique. Le sous-texte est que si l'accès n'atteint pas l'index et que le verrou de ligne ne peut pas être utilisé, il dégénérera en verrou de table. Par exemple :t_user(uid, uname, age, sex) innodb; uid PK 无其他索引 update t_user set age=10 where uid=1; 命中索引,行锁。 update t_user set age=10 where uid != 1; 未命中索引,表锁。 update t_user set age=10 where name='chackca'; 无索引,表锁。
8. La table InnoDB doit avoir un index unique (comme une clé primaire) (si l'utilisateur ne le spécifie pas, une colonne cachée Row_id sera trouvée/produite pour servir de clé primaire par défaut key), alors que Myisam n'en a pas besoin
9. Les fichiers de stockage Innodb sont frm, ibd, et Myisam est frm, MYD, MYI
Innodb : frm est un fichier de définition de table, ibd est un fichier de données.
Myisam : frm est un fichier de définition de table, myd est un fichier de données, myi C'est un fichier d'index
Comment choisir :
1. Voulez-vous prendre en charge les transactions Si oui, veuillez choisir innodb. Sinon, vous pouvez considérer MyISAM ;
2. Si la plupart des tables sont uniquement destinées aux requêtes de lecture, vous pouvez considérer MyISAM. Si vous savez lire et écrire, veuillez utiliser InnoDB.
3. Après un crash du système, il est plus difficile pour MyISAM de récupérer. Est-ce acceptable
4. Innodb est devenu le moteur par défaut de MySQL depuis la version 5.5 (anciennement MyISAM), ce qui montre que c'est le cas. les avantages sont évidents pour tous Oui, si vous ne savez pas quoi utiliser, alors utilisez InnoDB, au moins ce n'est pas mal.
Pourquoi InnoDB recommande-t-il d'utiliser un ID à incrémentation automatique comme clé primaire ?
Réponse : L'ID à incrémentation automatique peut garantir que l'index B+ est étendu à partir de la droite à chaque fois qu'il est inséré, ce qui peut éviter les arbres B+ et les fusions et fractionnements fréquents (par rapport à l'utilisation de l'UUID). Si vous utilisez des clés primaires de chaîne et des clés primaires aléatoires, les données seront insérées de manière aléatoire et l'efficacité sera médiocre.
Les 4 fonctionnalités majeures du moteur innodb
Insérer un tampon (insérer un tampon), double écriture (double écriture), index de hachage adaptatif (ahi), lecture anticipée (lecture anticipée)
【 Lié recommandations :tutoriel vidéo 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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

MySQL est un système de gestion de la base de données relationnel open source, principalement utilisé pour stocker et récupérer les données rapidement et de manière fiable. Son principe de travail comprend les demandes des clients, la résolution de requête, l'exécution des requêtes et les résultats de retour. Des exemples d'utilisation comprennent la création de tables, l'insertion et la question des données et les fonctionnalités avancées telles que les opérations de jointure. Les erreurs communes impliquent la syntaxe SQL, les types de données et les autorisations, et les suggestions d'optimisation incluent l'utilisation d'index, les requêtes optimisées et la partition de tables.

Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

MySQL est choisi pour ses performances, sa fiabilité, sa facilité d'utilisation et son soutien communautaire. 1.MySQL fournit des fonctions de stockage et de récupération de données efficaces, prenant en charge plusieurs types de données et opérations de requête avancées. 2. Adoptez l'architecture client-serveur et plusieurs moteurs de stockage pour prendre en charge l'optimisation des transactions et des requêtes. 3. Facile à utiliser, prend en charge une variété de systèmes d'exploitation et de langages de programmation. 4. Avoir un solide soutien communautaire et fournir des ressources et des solutions riches.

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.
