Vous comparez un indice composite avec un ensemble d'indices indépendants. Ils sont juste différents. Pensez-y de cette façon: un index composé vous donne une recherche rapide du premier champ dans un ensemble imbriqué de champs suivi par une recherche rapide du deuxième champ dans SEULEMENT les enregistrements déjà sélectionnés par le premier champ, suivi d'une recherche rapide du troisième champ - encore, seulement dans les enregistrements sélectionnés par les deux indices précédents.
Prenons un exemple. Votre moteur de base de données ne prendra pas plus de 20 étapes pour localiser une valeur unique dans 1 000 000 enregistrements (si la mémoire le permet) si vous utilisez un index. Cela est vrai que vous utilisiez un index composite ou indépendant - mais UNIQUEMENT pour le premier champ ("espèce" dans votre exemple bien que je pense que vous voulez Famille, Espèce, puis Nom commun). Maintenant, disons qu'il y a 100 000 enregistrements correspondants pour cette première valeur de champ. Si vous n'avez que des index uniques, alors toute recherche dans ces enregistrements prendra 100 000 pas: un pour chaque enregistrement récupéré par le premier index. C'est parce que le deuxième index ne sera pas utilisé (dans la plupart des bases de données - c'est un peu une simplification) et une correspondance de force brute doit être utilisée.
Si vous avez un indice composite alors votre recherche est beaucoup plus rapide parce que votre deuxième recherche sur le terrain aura un indice au sein le premier ensemble de valeurs. Dans ce cas, vous n'avez pas besoin de plus de 17 étapes pour atteindre votre première valeur correspondante dans le champ 2 dans les 100 000 correspondances du champ 1 (base de journal 2 sur 100 000). Donc: étapes nécessaires pour trouver un enregistrement unique d'une base de données de 1.000.000 enregistrements utilisant un index composite sur 3 champs imbriqués où le premier récupère 100.000 et le second récupère 10.000 = 20 + 17 + 14 = 51 étapes.
Étapes nécessaires dans les mêmes conditions avec seulement des indices indépendants = 20 + 100 000 + 10 000 = 110 020 pas.
Grande différence, hein?
Maintenant, ne pas allez écrous mettre des indices composites partout. D'abord, ils sont chers sur les insertions et les mises à jour. Deuxièmement, ils ne sont utilisés que si vous recherchez réellement des données imbriquées (pour un autre exemple, je les utilise pour extraire des données pour les connexions d'un client sur une plage de dates donnée). En outre, ils ne valent pas la peine si vous travaillez avec des ensembles de données relativement petits.
Enfin, vérifiez la documentation de votre base de données. Les bases de données sont devenues extrêmement sophistiquées dans la capacité de déployer des index ces jours-ci et le scénario Database 101 décrit ci-dessus peut ne pas convenir à certains (bien que je développe toujours comme si je le sais).
Merci, Collimarco, d'avoir choisi ma réponse comme "la réponse". –