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.
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.
Envisagez de créer un index composite pour :
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 ???
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
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!