2015-01-15 3 views
0

, если я хочу, чтобы получить первую строку, обычно я использую такой запрос:sqlite, какой самый быстрый способ получить строку?

SELECT * FROM tableOfFamousUndeadPeople WHERE ID = 1 

я думаю SQLITE проверки ID всех строк, то я получаю результат. Поэтому, если моя таблица имеет n строк, время O (n).

На самом деле, у моего идентификационного столбца есть флаги INTEGER PRIMARY KEY, я не знаю, может ли sqlite сделать трюк blackmagick для ускорения. Я не знаю, есть ли другой способ получить один ряд. Я действительно не понимаю, как использовать ROWID, или если столбец идентификатора используется как ROWID

ответ

3

Время намного лучше, чем O (n). База данных хранит первичный ключ (также другие индексы), отсортированный, чтобы он мог выполнять двоичный поиск, чтобы найти нужную строку.

Сложность время O (журнал (п))

http://bigocheatsheet.com/

что это самый быстрый способ получить строку?

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

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

+0

но, м я использую самый быстрый способ? –

+0

Да, если у вас есть первичный ключ, это самый быстрый способ найти строку. –

+0

Благодарим вас за ответ! –

Смежные вопросы