Това основно се свежда до това дали 10 индекса с размер N са по-ефективни от един индекс с размер N * 10. Ако гледате само четенията, тогава отделните индекси винаги трябва да са по-бързи. Свързаните разходки на b-дърво ще изследват по-малък набор ключове и т.н.
Все пак има няколко точки, които трябва да имате предвид:
- Индексите на масивни полета основно индексират всеки елемент от масива отделно. По този начин режийните разходи за търсене ще бъдат най-много 1-2 допълнителни стъпки по време на разходката на b-дървото, което е незначителен удар в производителността. С други думи, те ще бъдат почти толкова бързи.
- Наличието на 10 индекса може да означава, че всяка актуализация/вмъкване ще изисква повече от един индекс да бъде актуализиран (в зависимост от това дали вашите индекси споделят поле или ако актуализирате повече от 1 времево клеймо наведнъж). Това е важно съображение за ефективност.
- Използването на индекс на масив прави малко по-лесно добавянето на допълнителни времеви клейма (напр. Timestamp10).
- Има ограничение за броя на пространствата от имена, които можете да използвате за база данни (24k) и всеки индекс заема едно. Ако направите отделен индекс за поле, това може да се превърне в проблем.
- Най-важното е, че индексът на масива е много по-ясен и ще опрости кода ви и следователно поддръжката. Предвид ограничените разлики в производителността, бих казал, че това е най-силната мотивация да изберете индекс на масив тук.