Индексы создаются для полей таблиц базы данных для повышения производительности поиска по этим полям. Реализация индексов в движках баз данных осуществлена через использование бинарных деревьев или хеш-таблиц..
Увеличение производительности поиска с использованием индексов очень существенно и может достигать десятков раз.. но нужно отметить, что за всеми плюсами использования индексов есть и некоторые небольшие минусы: увеличивается время на добавление и изменение записей в таблице базы данных, увеличивается размер самой таблицы..
Ниже приведу замеры времени выполнения запросов для таблицы базы данных без использования и с использованием индексов. Данные приведены только для оценки порядка величин..
Количество записей в тесте 50000, количество уникальных записей 5000 (т.е. 10%, все остальные записи случайным образом повторяются), указано удельное время в миллисекундах на 1 запрос:
Операция Без индексов: С индексами:
Добавление данных 0.2 0.42
Тип данных: Без индексов: С индексами:
varchar 28.0 0.67
int 30.0 0.42
bigint 25.5 0.43
float 30.5 0.26
double 31.5 0.48
decimal 38.0 0.48