Индексы в базе данных — очень важный аспект проектирования и разработки приложения. Если индексов слишком много, снизится производительность операторов ЯМД (языка манипуляции данными, SQL, например). Если индексов не хватает, снизится производительность запросов (а следовательно, вставок, изменений и удалений). Правильное решение этой проблемы позволит обеспечить высокую производительность приложений.
В нашей практике мы часто сталкиваемся с тем, что об индексах программисты при разработке приложений думают в последнюю очередь. Считаю, что это — ошибочный подход. С самого начала, если понятно, как будут использоваться данные, необходимо создать достаточный набор индексов для использования в приложении. Слишком часто приложение просто устанавливают в производственной среде, а потом решают, какие индексы необходимо добавить.
Это означает, что программисты вовремя не оценили способы использования и окончательные объемы данных, с которыми придется работать. Индексы в такой системе придется добавлять бесконечно, по мере роста объемов данных (это называется настройкой постфактум). Появятся избыточные индексы, которые никогда не используются, и на них будет тратиться не только место, но и вычислительные ресурсы. Обдумав в самом начале, когда и как индексировать данные, можно сэкономить большое количество времени, затрачиваемого на настройку по ходу эксплуатации.