Я не понимаю то, что индекс или делает в SQLite. (НЕ SQL) я думаю, что он допускает сортировку в возрастании и убывающем порядке и доступе к более быстрым данным. Но я просто предполагаю здесь.
Почему не SQL? Ответ тот же, хотя внутренние детали будут отличаться в зависимости от реализации.
Размещение индекса в столбце указывает ядру базы данных создать, что неудивительно, индекс, который позволяет ему быстро находить строки при поиске определенных значений в столбце, без необходимости сканировать каждую строку в таблице.
Простой (и, вероятно, неоптимальный) индекс можно построить с помощью обычного двоичного дерева поиска.
Да, индексы - это все для повышения производительности доступа к данным (но за счет хранения) http://en.wikipedia.org/wiki/Index_(database)
Подумайте об адресной книге. Если вы ищете номер телефона Росси Марио, вы знаете, что фамилии упорядочены в алфавитном порядке, поэтому вы можете перейти к букве R
, затем выполнить поиск по букве o
и так далее. Индекс делают то же самое, представляют собой коллекции ссылок на записи, которые значительно ускоряют некоторые операции.
Поиск в неупорядоченной адресной книге будет намного медленнее, вам следует начать с имени на первой странице и искать на всех страницах, пока не найдете имя, которое вы ищете.
Индекс (в любой базе данных) какой-то список, который связывает отсортированный (или, по крайней мере, доступный для быстрого поиска) список ключей с информацией о том, где найти остальные данные, связанные с ключом.
Возможно, вы не найдете информации об этом в Интернете, потому что предполагаете, что это концепция SQLite, но это не так - это общая концепция компьютерной инженерии.
Я думаю, что это позволяет сортировать по по возрастанию и по убыванию и доступ к данным быстрее.
Да, это для чего. Индексы создают абстракцию отсортированных данных, что значительно ускоряет поиск. С индексом, использующим сбалансированное двоичное дерево поиска, поиск занимает O (log N) вместо O (N) времени.
В других ответах не упоминалось, что большинство баз данных используют индексы для реализации ограничений UNIQUE
(и, следовательно, также PRIMARY KEY
). Потому что для обеспечения уникальности вы должны иметь возможность определять, есть ли уже ключ, а это означает, что вам нужен быстрый поиск его.
Загляните в свою базу данных SQLite. Эти индексы sqlite_autoindex_
были созданы для обеспечения соблюдения ограничений UNIQUE.
То же, что и индекс в любой СУБД SQL (YES SQL).
Вы можете видеть, что оптимизатор запросов SQLite учитывает индексы: http://www.sqlite.org/optoverview.html