Индекс в большой таблице значительно ускоряет операции выборки данных (SELECT), а также операции изменения (UPDATE, DELETE) при использовании условия WHERE с проиндексированными столбцами. Без индекса, база данных должна будет сканировать всю таблицу (full table scan), что очень медленно на больших объемах данных.
При использовании индекса, база данных сначала обращается к структуре индекса (обычно B-дерево), которая значительно меньше самой таблицы и содержит упорядоченные ссылки на строки данных. Найдя нужные ссылки в индексе, база данных быстро получает доступ непосредственно к требуемым строкам таблицы.
Важно:
INSERT) и обновления (UPDATE) требует дополнительных ресурсов.Пример создания индекса в Ruby on Rails:
ruby
Пример использования индекса в SQL (выполняется базой данных):
sql