Quand utiliser les index composites
Dans la gestion de bases de données, les index composites sont utiles pour optimiser les requêtes qui impliquent la recherche de données dans plusieurs colonnes. Ils sont particulièrement efficaces lorsque les requêtes utilisent les préfixes les plus à gauche des colonnes d'index. Cela signifie que l'index sera utilisé pour récupérer des données lorsque les critères de recherche incluent tout ou un sous-ensemble des colonnes de l'index composite, dans le même ordre qu'elles apparaissent dans l'index.
Par exemple, considérons un table nommée maisons avec le schéma suivant :
CREATE TABLE IF NOT EXISTS `homes` ( `home_id` int(10) unsigned NOT NULL auto_increment, `sqft` smallint(5) unsigned NOT NULL, `year_built` smallint(5) unsigned NOT NULL, `geolat` decimal(10,6) default NULL, `geolng` decimal(10,6) default NULL, PRIMARY KEY (`home_id`), KEY `geolat` (`geolat`), KEY `geolng` (`geolng`), ) ENGINE=InnoDB ;
Avantages de l'utilisation d'index composites
Supposons vous exécutez souvent des requêtes qui recherchent des maisons dans une zone géographique spécifique. Vous pouvez créer un index composite sur les colonnes geolat et geolng :
KEY `geolat_geolng` (`geolat`, `geolng`)
En utilisant cet index composite, la base de données peut récupérer rapidement les maisons qui se situent dans la plage géographique spécifiée car l'index couvre les deux colonnes utilisées dans la recherche. critères. Cependant, il est important de noter qu'un index composite est plus efficace lorsque les requêtes utilisent les deux colonnes spécifiées dans l'index.
Choisir le meilleur ordre pour les index composites
L'ordre Le nombre de colonnes dans un index composite doit tenir compte de la fréquence et du type de requêtes effectuées. Si la plupart des requêtes recherchent des données en fonction de la première colonne, elles doivent être placées comme première colonne de l'index. Si les requêtes utilisent fréquemment plusieurs colonnes, envisagez de créer un index composite avec ces colonnes dans l'ordre dans lequel elles apparaissent dans la requête.
Dans la table des maisons, si les requêtes recherchent généralement des maisons en fonction de leur emplacement, puis de l'année de construction, le l'indice composite doit être structuré comme :
KEY `location_year` (`geolat`, `geolng`, `year_built`)
Considérations sur les performances
Bien que les indices composites puissent s'améliorer performances des requêtes, ils consomment également plus d’espace de stockage et nécessitent des frais de maintenance supplémentaires. Par conséquent, il est important d'évaluer soigneusement les avantages et les inconvénients potentiels avant de créer des index composites.
Dans l'exemple de la table homes, si les requêtes utilisent rarement à la fois geolat et geolng ensemble, la création d'un index composite peut ne pas générer de performances significatives. améliorations. Dans de tels cas, il est préférable de créer des index séparés sur les colonnes individuelles.
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!