На этот вопрос сложно ответить, не зная вашей системы. Вот мои рекомендации:
1) Couchbase 6.5 имеет средство рекомендации индекса, установите его на свой компьютер и выполните там самые распространенные запросы. Это даст вам правильный индекс для каждого.
2) После того, как у вас есть все рекомендации по индексам, попробуйте объединить их с одним и тем же типом документа
3) У вас должен быть хотя бы один индекс для каждого типа документа
4) Удалите основной индекс из производственной среды (если у вас уже есть хотя бы один индекс для каждого тип документа)
5) Сортировка - дорогостоящая операция, рассмотрите возможность сохранения уже отсортированных данных в вашем индексе:
CREATE INDEX `us_users_sorted` ON
`user_profile`(
`countryCode`,
`firstName` DESC,
`lastName` DESC)
WHERE (((`type` = "user")
and (`enabled` = true))
and (`countryCode` = "US"))
6) Избегайте по возможности выбирайте * и используйте частичные и закрывающие индексы
7) Если у вас есть документы с слишком большим количеством полей для индексации, рассмотрите возможность использования адаптивных индексов
Побочным эффектом создания слишком большого числа индексов, естественно, является более высокая нагрузка на диск, процессор и память. Однако это зависит от размера ваших данных и кластера.
Если у вас есть кластер с> = 5 узлами, вы можете также рассмотреть возможность разделения индекса и запроса от узла данных.