Недавно я ускорил сложный запрос на порядок, предоставив SQLite хороший индекс для работы. Результаты, подобные этому, заставляют меня задаться вопросом, следует ли мне индексировать множество других полей, которые обычно используются для предложений JOINs или ORDER BY. Но я не хочу переусердствовать и иметь на него обратные последствия: я предполагаю, что должны быть некоторые причины не создавать индексы, или каждое поле будет индексироваться по умолчанию.
В этом случае я использую SQLite, но, конечно же, приветствуются рекомендации DBMS-agnostic.