Maison > base de données > tutoriel mysql > Quand devriez-vous créer un index composite pour des performances optimales de base de données ?

Quand devriez-vous créer un index composite pour des performances optimales de base de données ?

Mary-Kate Olsen
Libérer: 2024-12-10 04:57:13
original
991 Les gens l'ont consulté

When Should You Create a Composite Index for Optimal Database Performance?

Quand devriez-vous utiliser un index composite ?

Un index composite est un type d'index qui comprend plus d'une colonne. Ceci est utile lorsque les requêtes impliquent fréquemment plusieurs colonnes de la même table. En exploitant un index composite, la base de données peut récupérer des données plus efficacement.

Ramifications des performances de l'utilisation d'un index composite

L'utilisation d'un index composite améliore généralement les performances des requêtes. Cependant, l'utilisation d'un nombre excessif d'indices composites peut avoir un impact négatif sur les performances en raison de l'augmentation de la taille de l'index et des frais de maintenance.

Raisons d'utiliser un index composite

Envisagez de créer un index composite pour :

  • Gérer les requêtes impliquant plusieurs colonnes de la même table
  • Accélérer les requêtes qui utilisent les sous-ensembles les plus à gauche de l'index composite columns

Exemple : Base de données Homes

Dans votre exemple, un index composite sur geolat et geolng bénéficierait au filtrage des requêtes en fonction de ces coordonnées, telles que :

SELECT * FROM homes
WHERE geolat BETWEEN ??? AND ???
AND geolng BETWEEN ??? AND ???
Copier après la connexion

Analyse des requêtes mise à jour

En fonction du schéma fourni, les éléments suivants requête :

EXPLAIN SELECT homes.home_id,
                    address,
                    city,
                    state,
                    zip,
                    price,
                    sqft,
                    year_built,
                    account_type_id,
                    num_of_beds,
                    num_of_baths,
                    geolat,
                    geolng,
                    photo_id,
                    photo_url_dir
            FROM homes
            LEFT OUTER JOIN home_photos ON homes.home_id = home_photos.home_id
                AND homes.primary_photo_group_id = home_photos.home_photo_group_id
                AND home_photos.home_photo_type_id = 2
            WHERE homes.display_status = true
            AND homes.geolat BETWEEN -100 AND 100
            AND homes.geolng BETWEEN -100 AND 100
Copier après la connexion

utilise l'index display_status et non l'index geolat ou geolng. Un index composite sur geolat et geolng pourrait potentiellement améliorer les performances des requêtes dans ce scénario.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal