По принцип индексите са полезни само ако са над селективен поле. Това означава, че броят на документите, които имат определена стойност, е малък спрямо общия брой документи.
Какво означава "малък" зависи от набора от данни и заявката. Селективността от 1% е доста безопасна, когато решавате дали даден индекс има смисъл. Ако конкретна стойност съществува в, да речем, 10% от документите, извършването на сканиране на таблица може да бъде по-ефективно от използването на индекс върху съответното поле.
Имайки това предвид, някои от полетата ви ще бъдат селективни а някои няма да бъдат. Например, подозирам, че филтрирането по "OK" няма да бъде много избирателно. Можете да премахнете неселективните полета от съображенията за индексиране - ако някой иска всички поръчки, които са "ОК" без други условия, в крайна сметка ще направи сканиране на таблицата. Ако някой иска поръчки, които са „ОК“ и имат други условия, ще се използва какъвто и индекс да е приложим за други условия.
Сега, когато ви остават селективни (или поне донякъде селективни) полета, помислете кои заявки са едновременно популярни и селективни. Например, може би марка+тип би била такава комбинация. Можете да добавите съставни индекси, които съответстват на популярни заявки, които очаквате да бъдат селективни.
Сега, какво ще стане, ако някой филтрира само по марка? Това може да бъде избирателно или не в зависимост от данните. Ако вече имате комбиниран индекс за марка+тип, ще оставите на базата данни да определи дали заявката само за марка е по-ефективна за изпълнение чрез индекса марка+тип или чрез сканиране на колекция.
Продължете по този начин с други популярни заявки и полета.