Maison base de données tutoriel mysql Analyser ce qu'est le pushdown d'index Mysql ? Est-ce que cela aide à l'optimisation ?

Analyser ce qu'est le pushdown d'index Mysql ? Est-ce que cela aide à l'optimisation ?

Nov 04, 2021 pm 03:51 PM
mysql

Optimisation des performances MySQL : qu'est-ce que le pushdown d'index ?

Introduction

Le pushdown des conditions d'index (index condition pushdown), appelé ICP, a été lancé dans la version Mysql5.6 et est utilisé pour optimiser les requêtes.

Lors d'une requête utilisant un index de clé non primaire (également appelé index normal ou index secondaire) sans utiliser ICP, le moteur de stockage récupère les données via l'index puis les renvoie au serveur MySQL. Le serveur détermine ensuite si le. les données remplissent les conditions.

Lors de l'utilisation d'ICP, s'il existe des conditions de jugement pour certaines colonnes indexées, le serveur MySQL transmettra cette partie des conditions de jugement au moteur de stockage, puis le moteur de stockage jugera si l'index répond aux conditions transmises par le serveur MySQL. . Uniquement Lorsque l'index remplit les conditions, les données seront récupérées et renvoyées au serveur MySQL.

L'optimisation du refoulement des conditions d'index peut réduire le nombre de fois où le moteur de stockage interroge la table sous-jacente, et peut également réduire le nombre de fois où le serveur MySQL reçoit des données du moteur de stockage.

【Apprentissage recommandé : Tutoriel vidéo mysql

Ouvrir

Avant de commencer, préparez une table utilisateur (user), dont les principaux champs sont : id, nom, âge, adresse. Créez un index commun (nom, âge).

Supposons qu'il soit obligatoire de faire correspondre tous les utilisateurs dont le prénom est Chen. L'instruction SQL est la suivante :

SELECT * from user where  name like '陈%'
Copier après la connexion

Selon le principe du "meilleur préfixe gauche", un index conjoint (nom, âge) est utilisé ici pour requête, Les performances sont nettement supérieures à celles de l'analyse complète de la table.

La question est : et s'il y avait d'autres conditions ? Supposons qu'il existe une autre exigence pour faire correspondre les utilisateurs dont le prénom est Chen et dont l'âge est de 20 ans. L'instruction SQL à ce moment est la suivante :

SELECT * from user where  name like '陈%' and age=20
Copier après la connexion

Comment cette instruction SQL doit-elle être exécutée ? Ce qui suit est une analyse des versions avant et après Mysql5.6.

Version MySQL antérieure à 5.6

La version antérieure à 5.6 n'a pas l'optimisation du push down d'index, donc le processus d'exécution est le suivant :

Analyser ce quest le pushdown dindex Mysql ? Est-ce que cela aide à loptimisation ?

ignorera le champ d'âge et interrogera directement par nom (nom. , âge) Deux résultats ont été trouvés sur l'arborescence dans cette leçon, avec des ID respectivement 2 et 1. Ensuite, les valeurs d'ID obtenues ont été renvoyées à la table pour interrogation encore et encore, ce processus a donc nécessité de revenir à la table deux fois.

Mysql5.6 et versions ultérieures

La version 5.6 ajoute l'optimisation du pushdown d'index. Le processus d'exécution est le suivant :

Analyser ce quest le pushdown dindex Mysql ? Est-ce que cela aide à loptimisation ?

InnoDB n'ignore pas le champ d'âge, mais détermine l'âge à l'intérieur de l'index. est-il égal à 20 ? Les enregistrements qui ne sont pas égaux à 20 sont ignorés directement. Par conséquent, un seul enregistrement correspond dans l'arborescence d'index. À ce stade, utilisez cet ID pour revenir à la table dans l'index de clé primaire. arbre pour interroger toutes les données. Ce processus ne doit être retourné à la table qu'une seule fois.

Pratique

Bien sûr, l'analyse ci-dessus n'est qu'en principe, nous pouvons l'analyser dans la pratique, alors Chen a installé la version Mysql5.6 de Mysql et analysé la déclaration ci-dessus, comme indiqué ci-dessous :

Analyser ce quest le pushdown dindex Mysql ? Est-ce que cela aide à loptimisation ?

Selon expliquer Les résultats de l'analyse montrent que la valeur de Extra est Utilisation de la condition d'index, ce qui signifie que le refoulement d'index a été utilisé.

Résumé

L'optimisation du refoulement d'index sur les index de clé non primaire peut réduire efficacement le nombre de retours de table et améliorer considérablement l'efficacité des requêtes.

Pour désactiver le pushdown d'index, vous pouvez utiliser la commande suivante. La modification du fichier de configuration ne sera plus décrite. Après tout, pourquoi une fonction aussi excellente devrait-elle être désactivée :

set optimizer_switch='index_condition_pushdown=off';
Copier après la connexion
.

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois 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)

MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

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.

Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

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: une introduction à la base de données la plus populaire au monde MySQL: une introduction à la base de données la plus populaire au monde Apr 12, 2025 am 12:18 AM

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.

Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

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.

Pourquoi utiliser MySQL? Avantages et avantages Pourquoi utiliser MySQL? Avantages et avantages Apr 12, 2025 am 12:17 AM

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.

Comment créer une nouvelle connexion à MySQL dans Navicat Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM

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.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

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: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

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.

See all articles