Использование индекса в базе данных Ms-Access

775
Coding Enthusiast

Почему индекс заставляет запрос выполняться быстрее? Что делает индекс? В частности, в Access, если вы объявляете столбец как индекс, как это влияет на запрос?

Есть идеи?

-2
У вас есть учетная запись SO, и вы получили ответ на нее http://stackoverflow.com/questions/1108/how-does-database-indexing-work Dave 8 лет назад 1
@ Дэйв из-за того, что подобные вопросы больше не разрешены в stackoverflow, я решил задать его здесь, и я попытался найти его в Google, и на самом деле ничего не нашел по ms-access. Я не проверял ТАК, потому что я не представляю, что это там Coding Enthusiast 8 лет назад 0
Да, не всегда ясно, где мы можем / не можем оставлять сообщения, но, надеюсь, ответа там достаточно. Это не сфокусированный MS Access, но основной принцип тот же Dave 8 лет назад 0
@ Дейв вопрос ответил. спасибо н Coding Enthusiast 8 лет назад 0
Если у вас есть руководство по программному обеспечению для компьютеров на 1000 страниц и вы хотите найти тему по конкретному вопросу, что вы делаете? Перейти к указателю, и он скажет вам номер страницы. Это похоже на то, что происходит в таблице. Saulysw 8 лет назад 0

2 ответа на вопрос

2
Frank Thomas

Это очень сложная вещь, поэтому я дам вам краткое изложение.

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

Индексы хранят индексированное поле и адрес хранения, по которому происходит запись, в древовидной структуре данных, оптимизированной для поиска (часто B-Tree), так что для навигации по структуре данных, поиска нужных индексированных данных требуется очень мало сравнений. и затем получить адрес хранения, по которому хранится запись. Затем запись сама может быть восстановлена.

Таким образом, вместо чтения таблицы строка за строкой, чтобы найти запись, мы запрашиваем индекс. индекс делает 3 чтения через B-дерево и находит индексируемый элемент, в котором выполняется поиск, с адресом данных, привязанных к элементу, а затем возвращает адрес. Если ваша запись была 1024-й строкой в ​​таблице, вы только что выполнили задачу за 4 чтения вместо 1025.

0
wbeard52

Из этой статьи Microsoft

Создать и использовать индекс для повышения производительности

Вы можете использовать индекс, чтобы помочь Microsoft Office Access быстрее находить и сортировать записи. Индекс хранит местоположение записей на основе поля или полей, которые вы выбираете для индексации. После того как Access получит местоположение из индекса, он сможет извлечь данные, перейдя непосредственно в правильное местоположение. Таким образом, использование индекса может быть значительно быстрее, чем сканирование всех записей для поиска данных.