>_ IzzyLab

Практическое задание

SQLite: индекс по внешнему ключу

легко

Таблица orders(id, customer_id, amount) в базе /root/shop.db часто фильтруется по колонке customer_id, и такие запросы медленные. Создай индекс с именем idx_customer по колонке customer_id.

Что потренируешь:
  • sqlite3
  • create index
  • индексы
  • оптимизация запросов
  • sqlite_master

Разбор темы

Индекс — это отдельная отсортированная структура (обычно B-дерево), которая позволяет находить строки по значению колонки, не сканируя всю таблицу. Он ускоряет фильтрацию и соединения по этой колонке ценой дополнительного места и небольшого замедления записи, поэтому индексы вешают на часто фильтруемые поля, вроде внешних ключей. Создаётся оператором CREATE INDEX ... ON таблица(колонка), а увидеть объект можно в sqlite_master по type='index'.

Что проверяется

  1. индекс idx_customer создан
  2. индекс построен по таблице orders

Как это выглядит