Un index composite est un index de base de données qui englobe plusieurs colonnes, offrant des performances de recherche efficaces lorsque les requêtes impliquent plusieurs colonnes. Il s'agit d'un outil puissant qui peut améliorer considérablement les performances des bases de données, mais son application doit être soigneusement étudiée pour maximiser ses avantages.
Les index composites sont idéaux lorsque :
Les index composites offrent des avantages significatifs en termes de performances, mais comportent également certains compromis :
Dans votre exemple, où vous avez une table homes avec des colonnes telles que geolat, geolng, sqft, et year_built, un index composite sur (geolat, geolng) sera bénéfique si vous exécutez fréquemment des requêtes qui filtrent ou se joignent en fonction des deux coordonnées de localisation.
Requête avec index composite :
SELECT * FROM homes WHERE geolat BETWEEN ... AND ... AND geolng BETWEEN ... AND ...
Cette requête exploitera l'index composite (geolat, geolng) pour efficacement filtre basé sur les deux coordonnées d'emplacement, ce qui entraîne une exécution plus rapide.
Requête sans index composite :
SELECT * FROM homes WHERE geolat = ... AND geolng = ...
Sans l'index composite, la base de données doit effectuer une analyse complète de la table pour récupérer les enregistrements correspondants, ce qui ralentit l'exécution.
Dans votre scénario mis à jour, avec les détails supplémentaires du schéma et de la requête, l'index composite sur (geolat, geolng) est toujours recommandé. La sortie EXPLAIN indique que la requête utilise les index à colonne unique existants sur geolat et geolng, mais ne les combine pas pour le filtrage de plage. Un index composite sur les deux colonnes les combinerait et optimiserait potentiellement davantage les performances des requêtes.
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!