Понятие индекса онлайн урок.


Индекс таблицы - это специальный объект БД, который создается СУБД. Индекс таблицы позволяет оптимизировать и ускорить работу с таблицей базы данных. Рассмотрим пример.

У нас в таблице содержится информация про людей - имена, фамилии, телефоны, возраст и т.п. Предположим, что записей довольно много - к примеру, 10 000. Допустим, нам необходимо вывести людей возрастом от 20 до 30 лет. Если не использовать индекс, то СУБД будет рассматривать каждую строку таблицы, находить там поле Возраст и проверять - соответствует он критерию, или нет. И так с каждой записью. Естественно, что при таком подходе мы тратим ресурсы на перебор записей, нахождение поля и проверку критерия.

Намного удобнее было бы хранить копию столбца с возрастом (индекс) и, в случае запроса по возрасту, перебирать значения только в этой копии. А по найденным значениям переходить к соответствующим записям исходной таблицы. Таким образом сам поиск значений не происходит в таблице, а в индексе.
Индексы могут быть составными, если критерий содержит несколько полей таблицы.

В быту аналог индекса - это бумажная телефонная книжка. Серии страниц отмечены буквами алфавита и для поиска нужного человека мы вначале перебираем буквы для поиска нужной. Это существенно экономит время, нежели если бы мы просматривали весь справочник в поисках нужной фамилии.