L'un est le fichierDans MyISAM, il y a deux autres fichiers :
.MYD
, D signifie Data, qui est Les fichiers de données MyISAM stockent les enregistrements de données, tels que toutes les données de notre table user_myisam. L'un est le fichier .MYI
. I signifie Index, qui est le fichier d'index de MyISAM. Il stocke l'index. Par exemple, si nous créons un index de clé primaire sur le champ id, alors. l'index de clé primaire se trouve dans ce fichier d'index. En d'autres termes, dans MyISAM, l'index et les données sont deux fichiers indépendants. Alors, comment pouvons-nous trouver les données basées sur l’index ?Dans le B+Tree de MyISAM, les nœuds feuilles stockent les adresses disques correspondant aux fichiers de données. Par conséquent, après avoir trouvé la valeur clé dans le fichier d'index
.MYI
, l'enregistrement de données correspondant sera obtenu à partir du fichier de données .MYD
. Dans MyISAM, l'index auxiliaire se trouve également dans ce fichier .MYI
. Il n'y a aucune différence entre l'index auxiliaire et l'index de clé primaire dans la manière dont ils stockent et récupèrent les données. Ils trouvent également l'adresse du disque dans le fichier d'index, puis obtiennent les données dans le fichier de données.
InnoDB n'a qu'un seul fichier (fichier .ibd), alors où est l'index ? Dans InnoDB, il utilise la clé primaire comme index pour organiser le stockage des données, donc le fichier d'index et le fichier de données sont le même fichier, tous deux dans le fichierInnoDB
.ibd
. Sur le nœud feuille de l'index de clé primaire d'InnoDB, il stocke directement nos données. Qu'est-ce qu'un index clusterisé (index clusterisé) ? " >
MyISAMDans MyISAM, il y a deux autres fichiers :
L'un est le fichier .MYD
, D signifie Data, qui est Les fichiers de données MyISAM stockent les enregistrements de données, tels que toutes les données de notre table user_myisam.
L'un est le fichier Dans MyISAM, il y a deux autres fichiers :
.MYI
. I signifie Index, qui est le fichier d'index de MyISAM. Il stocke l'index. Par exemple, si nous créons un index de clé primaire sur le champ id, alors. l'index de clé primaire se trouve dans ce fichier d'index. En d'autres termes, dans MyISAM, l'index et les données sont deux fichiers indépendants. Alors, comment pouvons-nous trouver les données basées sur l’index ?Dans le B+Tree de MyISAM, les nœuds feuilles stockent les adresses disques correspondant aux fichiers de données. Par conséquent, après avoir trouvé la valeur clé dans le fichier d'index
.MYI
, l'enregistrement de données correspondant sera obtenu à partir du fichier de données .MYD
. Dans MyISAM, l'index auxiliaire se trouve également dans ce fichier .MYI
. Il n'y a aucune différence entre l'index auxiliaire et l'index de clé primaire dans la manière dont ils stockent et récupèrent les données. Ils trouvent également l'adresse du disque dans le fichier d'index, puis obtiennent les données dans le fichier de données.
InnoDB n'a qu'un seul fichier (fichier .ibd), alors où est l'index ? Dans InnoDB, il utilise la clé primaire comme index pour organiser le stockage des données, donc le fichier d'index et le fichier de données sont le même fichier, tous deux dans le fichierInnoDB
.ibd
. Sur le nœud feuille de l'index de clé primaire d'InnoDB, il stocke directement nos données. Qu'est-ce qu'un index clusterisé (index clusterisé) ?
Une brève analyse des index dans le moteur de stockage MySQL
Cet article vous expliquera comment implémenter des index dans le moteur de stockage MySQL. J'espère qu'il vous sera utile !
Nous savons que les différents fichiers du moteur de stockage sont différents. Nous pouvons vérifier le répertoire des fichiers de données :
show VARIABLES LIKE 'datadir';
Chaque table InnoDB a deux fichiers (.frm et .ibd), et la table MyISAM a trois fichiers (.frm). , .MYD, .MYI) . [Recommandation associée : Tutoriel vidéo mysql]
Il existe un fichier identique, .frm
. .frm
est un fichier qui définit la structure de la table dans MySQL. Il sera généré quel que soit le moteur de stockage que vous choisissez lors de la création de la table, nous ne l'examinerons donc pas. .frm
。 .frm
是 MySQL 里面表结构定义的文件,不管你建表的时候选用任何一个存储引擎都会生成,我们就不看了。
我们主要看一下其他两个文件是怎么实现 MySQL 不同的存储引擎的索引的。
我们先来看下 MyISAM。
MyISAM
在 MyISAM 里面,另外有两个文件:
一个是.MYD
文件,D 代表 Data,是 MyISAM 的数据文件,存放数据记录,比如我们的 user_myisam 表的所有的表数据。
一个是.MYI
文件,I 代表 Index,是 MyISAM 的索引文件,存放索引,比如我们在 id 字段上面创建了一个主键索引,那么主键索引就是在这个索引文件里面。
也就是说,在 MyISAM 里面,索引和数据是两个独立的文件。那我们怎么根据索引找到数据呢?
MyISAM 的 B+Tree 里面,叶子节点存储的是数据文件对应的磁盘地址。所以从索引文件.MYI
中找到键值后,会到数据文件.MYD
中获取相应的数据记录。
这里画的是主键索引,如果是辅助索引,有什么不一样呢?
在 MyISAM 里面,辅助索引也在这个.MYI
文件里面。 辅助索引跟主键索引存储和检索数据的方式是没有任何区别的,一样是在索引文件里面找到磁盘地址,然后到数据文件里面获取数据。
InnoDB
InnoDB 只有一个文件(.ibd 文件),那索引放在哪里呢?
在 InnoDB 里面,它是以主键为索引来组织数据的存储的,所以索引文件和数据文件是同一个文件,都在.ibd
MyISAMDans MyISAM, il y a deux autres fichiers :
L'un est le fichier .MYD
, D signifie Data, qui est Les fichiers de données MyISAM stockent les enregistrements de données, tels que toutes les données de notre table user_myisam.
L'un est le fichier Dans MyISAM, il y a deux autres fichiers :
.MYI
. I signifie Index, qui est le fichier d'index de MyISAM. Il stocke l'index. Par exemple, si nous créons un index de clé primaire sur le champ id, alors. l'index de clé primaire se trouve dans ce fichier d'index. En d'autres termes, dans MyISAM, l'index et les données sont deux fichiers indépendants. Alors, comment pouvons-nous trouver les données basées sur l’index ?Dans le B+Tree de MyISAM, les nœuds feuilles stockent les adresses disques correspondant aux fichiers de données. Par conséquent, après avoir trouvé la valeur clé dans le fichier d'index
.MYI
, l'enregistrement de données correspondant sera obtenu à partir du fichier de données .MYD
. Dans MyISAM, l'index auxiliaire se trouve également dans ce fichier .MYI
. Il n'y a aucune différence entre l'index auxiliaire et l'index de clé primaire dans la manière dont ils stockent et récupèrent les données. Ils trouvent également l'adresse du disque dans le fichier d'index, puis obtiennent les données dans le fichier de données.
InnoDB n'a qu'un seul fichier (fichier .ibd), alors où est l'index ? Dans InnoDB, il utilise la clé primaire comme index pour organiser le stockage des données, donc le fichier d'index et le fichier de données sont le même fichier, tous deux dans le fichierInnoDB
.ibd
. Sur le nœud feuille de l'index de clé primaire d'InnoDB, il stocke directement nos données. Qu'est-ce qu'un index clusterisé (index clusterisé) ?
signifie que l'ordre logique des valeurs des clés d'index est cohérent avec l'ordre de stockage physique des lignes de données de la table. (Par exemple, le répertoire du dictionnaire est trié par Pinyin, et le contenu est également trié par Pinyin. Ce répertoire trié par Pinyin est appelé un index clusterisé).
🎜Dans InnoDB, la façon dont il organise les données est appelée (table d'organisation d'index cluster), donc l'index de clé primaire est un index cluster et les clés non primaires sont des index non clusterisés. 🎜🎜🎜Comment les index autres que les clés primaires, tels que l'index ordinaire que nous construisons sur le champ de nom, stockent-ils et récupèrent-ils les données ? 🎜🎜🎜🎜🎜🎜Dans InnoDB, il existe une distinction primaire et secondaire entre l'index de clé primaire et l'index auxiliaire. 🎜🎜L'index auxiliaire stocke l'index auxiliaire et les valeurs de la clé primaire. Si vous utilisez l'index auxiliaire pour interroger, l'index de clé primaire sera interrogé en fonction de la valeur de la clé primaire et les données seront finalement obtenues. 🎜🎜Par exemple, si nous utilisons l'index de nom pour interroger name= '青山', il trouvera la valeur de la clé primaire dans le nœud feuille, c'est-à-dire id=1, puis ira au nœud feuille de l'index de clé primaire pour obtenir les données. 🎜🎜🎜Une autre question, que se passe-t-il si une table n'a pas de clé primaire ? 🎜🎜🎜1. Si nous définissons une clé primaire (PRIMARY KEY), alors InnoDB sélectionnera la clé primaire comme index clusterisé. 🎜🎜2. Si la clé primaire n'est pas explicitement définie, InnoDB sélectionnera le premier index unique qui ne contient pas de valeur NULL comme index de clé primaire. 🎜🎜3. S'il n'existe pas d'index unique, InnoDB choisira le ROWID intégré de 6 octets comme index cluster caché, qui incrémentera la clé primaire au fur et à mesure que les enregistrements de ligne sont écrits. 🎜select _rowid name from t2;
Pour plus de connaissances sur la programmation, veuillez visiter : Introduction à la programmation ! !
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

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

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)

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

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.

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.

La position de MySQL dans les bases de données et la programmation est très importante. Il s'agit d'un système de gestion de base de données relationnel open source qui est largement utilisé dans divers scénarios d'application. 1) MySQL fournit des fonctions efficaces de stockage de données, d'organisation et de récupération, en prenant en charge les systèmes Web, mobiles et de niveau d'entreprise. 2) Il utilise une architecture client-serveur, prend en charge plusieurs moteurs de stockage et optimisation d'index. 3) Les usages de base incluent la création de tables et l'insertion de données, et les usages avancés impliquent des jointures multiples et des requêtes complexes. 4) Des questions fréquemment posées telles que les erreurs de syntaxe SQL et les problèmes de performances peuvent être déboguées via la commande Explication et le journal de requête lente. 5) Les méthodes d'optimisation des performances comprennent l'utilisation rationnelle des indices, la requête optimisée et l'utilisation des caches. Les meilleures pratiques incluent l'utilisation des transactions et des acteurs préparés

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.

Apache se connecte à une base de données nécessite les étapes suivantes: Installez le pilote de base de données. Configurez le fichier web.xml pour créer un pool de connexion. Créez une source de données JDBC et spécifiez les paramètres de connexion. Utilisez l'API JDBC pour accéder à la base de données à partir du code Java, y compris l'obtention de connexions, la création d'instructions, les paramètres de liaison, l'exécution de requêtes ou de mises à jour et de traitement des résultats.

Le processus de démarrage de MySQL dans Docker se compose des étapes suivantes: Tirez l'image MySQL pour créer et démarrer le conteneur, définir le mot de passe de l'utilisateur racine et mapper la connexion de vérification du port Créez la base de données et l'utilisateur accorde toutes les autorisations sur la base de données

L'installation de MySQL sur CENTOS implique les étapes suivantes: Ajout de la source MySQL YUM appropriée. Exécutez la commande YUM Install MySQL-Server pour installer le serveur MySQL. Utilisez la commande mysql_secure_installation pour créer des paramètres de sécurité, tels que la définition du mot de passe de l'utilisateur racine. Personnalisez le fichier de configuration MySQL selon les besoins. Écoutez les paramètres MySQL et optimisez les bases de données pour les performances.
