Вы хотите индекс для book_id и главы.Без индекса сервер может выполнить table scan
и, по существу, загрузить всю таблицу в память для выполнения поиска.Выполните быстрый поиск по команде CREATE INDEX
СУБД, которую вы используете.Вы создаете индекс один раз и каждый раз, когда вы делаете INSERT
или DELETE
или UPDATE
, сервер будет автоматически обновлять индекс.Индекс может быть UNIQUE
и может быть на нескольких полях (в вашем случае, book_id и chapter).Если вы сделаете это UNIQUE
, база данных не позволит вам вставить вторую строку с тем же ключом (в данном случае, book_id и chapter).На большинстве серверов наличие одного индекса в двух полях отличается от наличия двух отдельных индексов в отдельных полях каждое.
Пример Mysql:
CREATE INDEX id_chapter_idx ON book_content (book_id,chapter);
Если вам нужна только одна запись длякаждая book_id, комбинация глав, используйте эту команду:
CREATE UNIQUE INDEX id_chapter_idx ON book_content (book_id,chapter);
A PRIMARY INDEX
- это специальный индекс, который UNIQUE
и NOT NULL
.Каждая таблица может иметь только один первичный индекс.Фактически каждая таблица должна иметь один первичный индекс для обеспечения целостности таблицы, особенно во время объединений.