Я думаю, что в Википедии есть хорошее резюме того, что такое индексы и что они делают.Смотрите здесь: http://en.wikipedia.org/wiki/Index_%28database%29
Индексы могут увеличивать размер базы данных.Они эффективно кэшируют заказ для ваших данных.Когда вы индексируете по отношению к внешнему ключу, вы собираетесь кэшировать порядок по умолчанию для вашей таблицы, который может уменьшить размер элементов, которые нужно искать в вашей таблице, или может ускорить соединения.
Учтите этоПридуманный пример:
У меня есть таблица с именем employee:
Идентификатор сотрудника |Код сотрудника |Имя сотрудника
1 |0003 |Ричард
2 |0002 |Боб
3 |0008 |Тим
Я хочу присоединиться к отсортированному списку кодов сотрудников:
0003 0008
Это будет означать без индексов у вас есть эффективность поиска O (n2).С помощью таблицы, упорядоченной по Коду сотрудника, вы можете увидеть эффективность поиска, заданную бинарным деревом поиска: http://en.wikipedia.org/wiki/Binary_search_algorithm.По сути, он может найти 0003, угадав свое местоположение и обнаружив, что он становится все ближе, а не искать в каждой строке.
Я не говорю, что ваша база данных использует какой-то конкретный алгоритм, но есть алгоритмы, которые требуют упорядочения данных по ключам для более эффективного поиска.
Возможно, вы захотите рассмотреть возможность удаления индексовкогда они вам больше не нужны, так как это влияет на размер базы данных.