Table des matières
1. Qu'est-ce qu'un index clusterisé ?
2. Index clusterisé et clé primaire
Maison base de données tutoriel mysql Quels sont les avantages et les inconvénients de l'index clusterisé MySQL

Quels sont les avantages et les inconvénients de l'index clusterisé MySQL

May 27, 2023 pm 09:43 PM
mysql

1. Qu'est-ce qu'un index clusterisé ?

Les index de base de données peuvent être divisés en différents types selon différentes perspectives, et l'index clusterisé en fait partie.

L'index clusterisé en anglais est un index clusterisé. Parfois, vous pouvez voir certaines personnes l'appeler index clusterisé, etc. L'opposé est un index non clusterisé ou un index secondaire.

L'index clusterisé n'est pas un type d'index distinct, mais un moyen de stocker des données. Dans le moteur de stockage InnoDB de MySQL, ce que l'on appelle l'index clusterisé stocke en fait l'index et les lignes de données dans le même B+Tree : À ce stade, les données sont placées dans les nœuds feuilles, regroupés, ce qui signifie les lignes de données et les valeurs clés correspondantes. existent de manière compacte ensemble. 9 9

Shenzhen

Homme
2 ac 98 Guangzhou Homme
3 af 88 Beijing Femme
4 bc 80 Shanghai Femme
5 bg 85 Chongqing femelle
6 bw 95 Tianjin male
7 bw 99 Haikou Femme
8 cc 92 Wuhan Homme
9 ck 90 Shenzhen Homme
10 cx 93 Shenzhen Homme

Ensuite, son index clusterisé ressemble probablement à ceci :

Quels sont les avantages et les inconvénients de lindex clusterisé MySQL

Ensuite, vous pouvez voir qu'il y a les deux valeurs de clé primaire (index) sur les feuilles) et il y a des lignes de données, et il n'y a que des valeurs de clé primaire (index) sur les nœuds.

Pensez-y les amis, les données de la table MySQL ne peuvent être enregistrées qu'en une seule copie sur le disque, et il est impossible d'en enregistrer deux copies. Par conséquent, dans une table, il ne peut y en avoir qu'une seule. un index clusterisé, non Il peut y en avoir plusieurs.

2. Index clusterisé et clé primaire

Certains amis sont confus quant à la relation entre les deux et assimilent même les deux.

Dans certaines bases de données, les développeurs sont autorisés à choisir librement quel index utiliser comme index clusterisé, mais cette fonctionnalité n'est pas prise en charge dans MySQL.

Dans MySQL, si la table elle-même a un jeu de clés primaires, alors la clé primaire est l'index clusterisé ; si la table elle-même ne définit pas de clé primaire, un index unique et non vide dans le La table sera sélectionnée comme index clusterisé ; s’il n’y a pas d’index unique non vide dans la table, la clé primaire implicite de la table sera automatiquement sélectionnée comme index clusterisé. Brother Song vous présentera la clé primaire implicite des tables MySQL dans les prochains articles.

Cependant, de manière générale, il est recommandé de définir vous-même la clé primaire de la table, car la clé primaire implicite est auto-incrémentée et il y aura un problème avec l'auto-incrémentation. incrémentation : il y aura une valeur d'auto-incrémentation. Dans le cas d'une concurrence de verrouillage très élevée, la limite supérieure de la clé primaire sera appelée données chaudes. Parce que toutes les opérations d'insertion nécessitent que la clé primaire soit incrémentée et ne peuvent pas être répétées, concurrence de verrouillage. se produira et les performances diminueront.

Selon l'introduction ci-dessus, nous pouvons résumer la relation entre l'index clusterisé et l'index de clé primaire dans MySQL comme suit :

  • #🎜🎜 #cluster Un index de cluster n'est pas nécessairement un index de clé primaire.

  • L'index de clé primaire doit être un index clusterisé.

3. Avantages et inconvénients de l'index clusterisé

Parlons d'abord des avantages :

    #🎜 🎜#Nous pouvons enregistrer les données associées ensemble. Par exemple, il existe un tableau de commande d'utilisateur. Nous pouvons regrouper toutes les données en fonction de
  • ID d'utilisateur + ID de commande

    . Les ID d'utilisateur peuvent être répétés, mais les ID de commande ne seront pas répétés. peut associer un utilisateur à Les données de commande sont toutes stockées ensemble. Si vous devez interroger toutes les commandes d'un utilisateur, cela sera très rapide et ne nécessite qu'une petite quantité d'E/S disque.

  • Pas besoin de retourner la table, l'accès aux données est donc plus rapide. Dans un index clusterisé, l'index et les données se trouvent sur le même B+Tree, donc l'obtention de données à partir de l'index clusterisé est plus rapide que l'obtention de données à partir d'un index non clusterisé (les index non clusterisés nécessitent un support de table).
  • Pour le premier cas, si nous voulons interroger tous les identifiants de commande de cet utilisateur en fonction de l'identifiant utilisateur, alors il n'est pas nécessaire d'aller sur le nœud feuille À ce stade, étant donné que les données dont nous avons besoin se trouvent sur le nœud de support, nous pouvons directement utiliser les caractéristiques de l'index de couverture pour lire les données requises.
  • Ce sont quelques avantages courants des index clusterisés. En fait, nous devrions tirer pleinement parti de ces avantages dans la conception de tables quotidiennes.

Jetons un coup d'œil aux inconvénients :

    Mes amis ont découvert que l'avantage de l'index clusterisé que nous avons mentionné plus tôt est principalement que l'index clusterisé L'index est réduit Cependant, certaines applications gourmandes en E/S peuvent utiliser directement une mémoire suffisamment grande pour lire toutes les données dans la mémoire pour le fonctionnement. Dans ce cas, l'index clusterisé n'a aucun avantage.
  • Les clés primaires aléatoires provoqueront des problèmes de fractionnement de page. Si les clés primaires sont insérées séquentiellement, l'efficacité sera relativement plus élevée, car dans B+Tree, il vous suffit de le faire. continuez à ajouter à l'arrière Oui ; mais si la clé primaire est insérée de manière non séquentielle, l'efficacité sera beaucoup plus faible car le fractionnement des pages peut être impliqué. En prenant l'image ci-dessus comme exemple, en supposant que chaque nœud peut enregistrer trois éléments de données et que nous voulons maintenant insérer un enregistrement avec une clé primaire de 4,5, nous devons alors reculer la valeur de la clé primaire de 5, ce qui fera également reculer le nœud avec une clé primaire de 8. Le fractionnement des pages entraîne une insertion de données moins efficace et occupe plus d'espace de stockage.
  • Lors de l'interrogation d'un index non clusterisé (index secondaire), vous devez renvoyer la table. Étant donné qu'un index est une arborescence d'index et que les données se trouvent toutes sur l'index clusterisé, donc si vous utilisez un index non clusterisé pour effectuer une recherche, les feuilles de l'index non clusterisé stockent la valeur de la clé primaire. Recherchez d'abord la valeur de la clé primaire. , puis maintenez La valeur de la clé primaire est ensuite recherchée sur l'index clusterisé, de sorte qu'un total de deux arborescences d'index soient interrogées, ce qui correspond au retour de la table.

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

La relation entre l'utilisateur de MySQL et la base de données La relation entre l'utilisateur de MySQL et la base de données Apr 08, 2025 pm 07:15 PM

Dans la base de données MySQL, la relation entre l'utilisateur et la base de données est définie par les autorisations et les tables. L'utilisateur a un nom d'utilisateur et un mot de passe pour accéder à la base de données. Les autorisations sont accordées par la commande Grant, tandis que le tableau est créé par la commande Create Table. Pour établir une relation entre un utilisateur et une base de données, vous devez créer une base de données, créer un utilisateur, puis accorder des autorisations.

Intégration RDS MySQL avec Redshift Zero ETL Intégration RDS MySQL avec Redshift Zero ETL Apr 08, 2025 pm 07:06 PM

Simplification de l'intégration des données: AmazonrDSMysQL et l'intégration Zero ETL de Redshift, l'intégration des données est au cœur d'une organisation basée sur les données. Les processus traditionnels ETL (extrait, converti, charge) sont complexes et prennent du temps, en particulier lors de l'intégration de bases de données (telles que AmazonrDSMysQL) avec des entrepôts de données (tels que Redshift). Cependant, AWS fournit des solutions d'intégration ETL Zero qui ont complètement changé cette situation, fournissant une solution simplifiée et à temps proche pour la migration des données de RDSMySQL à Redshift. Cet article plongera dans l'intégration RDSMYSQL ZERO ETL avec Redshift, expliquant comment il fonctionne et les avantages qu'il apporte aux ingénieurs de données et aux développeurs.

Comment remplir le nom d'utilisateur MySQL et le mot de passe Comment remplir le nom d'utilisateur MySQL et le mot de passe Apr 08, 2025 pm 07:09 PM

Pour remplir le nom d'utilisateur et le mot de passe MySQL: 1. Déterminez le nom d'utilisateur et le mot de passe; 2. Connectez-vous à la base de données; 3. Utilisez le nom d'utilisateur et le mot de passe pour exécuter des requêtes et des commandes.

L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données L'optimisation des requêtes dans MySQL est essentielle pour améliorer les performances de la base de données, en particulier lorsqu'elle traite avec de grands ensembles de données Apr 08, 2025 pm 07:12 PM

1. Utilisez l'index correct pour accélérer la récupération des données en réduisant la quantité de données numérisées SELECT * FROMMLOYEESEESHWHERELAST_NAME = 'SMITH'; Si vous recherchez plusieurs fois une colonne d'une table, créez un index pour cette colonne. If you or your app needs data from multiple columns according to the criteria, create a composite index 2. Avoid select * only those required columns, if you select all unwanted columns, this will only consume more server memory and cause the server to slow down at high load or frequency times For example, your table contains columns such as created_at and updated_at and timestamps, and then avoid selecting * because they do not require inefficient query se

Comment voir Mysql Comment voir Mysql Apr 08, 2025 pm 07:21 PM

Affichez la base de données MySQL avec la commande suivante: Connectez-vous au serveur: MySQL -U Username -P mot de passe Exécuter les bases de données Afficher les bases de données; Commande pour obtenir toutes les bases de données existantes Sélectionnez la base de données: utilisez le nom de la base de données; Tableau de vue: afficher des tables; Afficher la structure de la table: décrire le nom du tableau; Afficher les données: sélectionnez * dans le nom du tableau;

MySQL: la facilité de gestion des données pour les débutants MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM

MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

Puis-je récupérer le mot de passe de la base de données dans Navicat? Puis-je récupérer le mot de passe de la base de données dans Navicat? Apr 08, 2025 pm 09:51 PM

Navicat lui-même ne stocke pas le mot de passe de la base de données et ne peut récupérer que le mot de passe chiffré. Solution: 1. Vérifiez le gestionnaire de mots de passe; 2. Vérifiez la fonction "Remember Motway" de Navicat; 3. Réinitialisez le mot de passe de la base de données; 4. Contactez l'administrateur de la base de données.

Comprendre les propriétés acides: les piliers d'une base de données fiable Comprendre les propriétés acides: les piliers d'une base de données fiable Apr 08, 2025 pm 06:33 PM

Une explication détaillée des attributs d'acide de base de données Les attributs acides sont un ensemble de règles pour garantir la fiabilité et la cohérence des transactions de base de données. Ils définissent comment les systèmes de bases de données gérent les transactions et garantissent l'intégrité et la précision des données même en cas de plantages système, d'interruptions d'alimentation ou de plusieurs utilisateurs d'accès simultanément. Présentation de l'attribut acide Atomicité: une transaction est considérée comme une unité indivisible. Toute pièce échoue, la transaction entière est reculée et la base de données ne conserve aucune modification. Par exemple, si un transfert bancaire est déduit d'un compte mais pas augmenté à un autre, toute l'opération est révoquée. BeginTransaction; UpdateAccountSsetBalance = Balance-100Wh

See all articles