Что такое индекс в SQLite?

Я не понимаю то, что индекс или делает в SQLite. (НЕ SQL) я думаю, что он допускает сортировку в возрастании и убывающем порядке и доступе к более быстрым данным. Но я просто предполагаю здесь.

14
задан Mohit Deshpande 21 July 2010 в 07:57
поделиться

6 ответов

Почему не SQL? Ответ тот же, хотя внутренние детали будут отличаться в зависимости от реализации.

Размещение индекса в столбце указывает ядру базы данных создать, что неудивительно, индекс, который позволяет ему быстро находить строки при поиске определенных значений в столбце, без необходимости сканировать каждую строку в таблице.

Простой (и, вероятно, неоптимальный) индекс можно построить с помощью обычного двоичного дерева поиска.

15
ответ дан 1 December 2019 в 09:11
поделиться

Да, индексы - это все для повышения производительности доступа к данным (но за счет хранения) http://en.wikipedia.org/wiki/Index_(database)

5
ответ дан 1 December 2019 в 09:11
поделиться

Подумайте об адресной книге. Если вы ищете номер телефона Росси Марио, вы знаете, что фамилии упорядочены в алфавитном порядке, поэтому вы можете перейти к букве R , затем выполнить поиск по букве o и так далее. Индекс делают то же самое, представляют собой коллекции ссылок на записи, которые значительно ускоряют некоторые операции.

Поиск в неупорядоченной адресной книге будет намного медленнее, вам следует начать с имени на первой странице и искать на всех страницах, пока не найдете имя, которое вы ищете.

3
ответ дан 1 December 2019 в 09:11
поделиться

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

Возможно, вы не найдете информации об этом в Интернете, потому что предполагаете, что это концепция SQLite, но это не так - это общая концепция компьютерной инженерии.

3
ответ дан 1 December 2019 в 09:11
поделиться

Я думаю, что это позволяет сортировать по по возрастанию и по убыванию и доступ к данным быстрее.

Да, это для чего. Индексы создают абстракцию отсортированных данных, что значительно ускоряет поиск. С индексом, использующим сбалансированное двоичное дерево поиска, поиск занимает O (log N) вместо O (N) времени.

В других ответах не упоминалось, что большинство баз данных используют индексы для реализации ограничений UNIQUE (и, следовательно, также PRIMARY KEY ). Потому что для обеспечения уникальности вы должны иметь возможность определять, есть ли уже ключ, а это означает, что вам нужен быстрый поиск его.

Загляните в свою базу данных SQLite. Эти индексы sqlite_autoindex_ были созданы для обеспечения соблюдения ограничений UNIQUE.

2
ответ дан 1 December 2019 в 09:11
поделиться

То же, что и индекс в любой СУБД SQL (YES SQL).

Вы можете видеть, что оптимизатор запросов SQLite учитывает индексы: http://www.sqlite.org/optoverview.html

1
ответ дан 1 December 2019 в 09:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: