Я пытаюсь понять производительность индексов базы данных с точки зрения нотации Big-O. Не зная об этом, я бы предположил, что:
- Запрос на первичный ключ или уникальный индекс даст вам время поиска O (1).
- Запрос на не уникальный идентификатор также даст время O (1), хотя, возможно, "1" медленнее, чем для уникального индекса (?)
- Запрос в столбце без индекса даст время поиска O (N) (полное сканирование таблицы).
Это вообще правильно? Будет ли запрос на первичный ключ когда-либо давать худшую производительность, чем O (1)? Моя особая проблема связана с SQLite, но мне было бы интересно узнать, в какой степени это зависит от разных баз данных.