L'ordre des colonnes est important lorsqu'il s'agit d'index. Cela dépend ou non de votre cas.
Laissez-moi vous expliquer. Disons que vous avez une table de personnes, avec le prénom, le dernier et le deuxième prénom.
Vous créez donc cet index, les colonnes dans l'ordre suivant:
FirstName, MiddleName, LastName
Maintenant, disons que vous faites maintenant une requête en utilisant une clause WHERE sur toutes ces colonnes. Il va utiliser l'index entier. Mais, disons que vous ne faites qu'une requête sur le prénom et le nom, ce qui se passe maintenant est que, tout en continuant à utiliser la requête, il saisira la plage de l'index qui a le même prénom que votre clause WHERE, Ensuite, scannez-les, récupérant ceux qui ont un nom de famille correspondant. Notez, il va scanner toutes les lignes avec le même prénom.
Cependant, si vous aviez réarrangé l'indice, comme celui-ci:
FirstName, LastName, MiddleName
Ensuite, la requête ci-dessus saisirait la plage de l'indice qui a le même nom et prénom, et récupérer ceux-ci.
Il est plus facile à saisir si vous le regardez d'une autre manière.
Le répertoire est trié par nom de famille, puis par prénom et par deuxième prénom. Si vous aviez mis le deuxième prénom entre le prénom et le nom, et que les personnes ayant le même prénom et le même nom seraient apparemment partout, simplement parce que vous avez trié le prénom avant le prénom.Par conséquent, si vous cherchez mon nom, qui est "Lasse Vågsæther Karlsen", vous trouverez tous les Karlsen-personnes, nous serions dans une liste séquentielle dans l'annuaire téléphonique, mais mon nom serait être placé au hasard, simplement parce que la liste serait alors triée par Vågsæther.
Ainsi, un index peut être utilisé, même si la requête n'utilise pas toutes les colonnes de l'index, mais les fonctions de recherche rapide ne fonctionnent que tant que les colonnes sont listées au début de l'index. Une fois que vous avez ignoré une colonne, une sorte de scan a lieu. Maintenant, si toutes vos requêtes utilisent à la fois l'identifiant et la date, peu importe, mais si toutes les requêtes incluent la date, et que certaines d'entre elles contiennent un identifiant, alors je mettrais la date d'abord, et l'identifiant Deuxièmement, de cette façon, l'indice serait utilisé dans plus de cas.
Ce n'était pas ce qu'il demandait ... Sauf erreur de lecture, il demande si l'ordre des colonnes dans un index composé de Date et ID est important. La performance d'un index Date-ID est-elle supérieure à celle d'un index ID-Date? – TheTXI
La révision rend ce que vous dites beaucoup plus compréhensible. +1 – TheTXI