


Analyser ce qu'est le pushdown d'index Mysql ? Est-ce que cela aide à l'optimisation ?
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 '陈%'
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
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 :
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 :
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 :
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';
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".

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.

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

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.

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.
