Недавно, работая над системой рекомендаций, казалось, что запуск простого запроса занял целую вечность. И что еще хуже, нужно было выполнить несколько запросов. Система работала нормально, когда у нас есть тысячи записей. Однако в долгосрочной перспективе, когда данные выросли, а тысячи строк стали миллионами, система начала работать плохо. Поиск и сортировка стали кошмаром.
Я просто добавил индексы для поиска (WHERE) и сортировки (ORDER BY), а также группировки и группировки столбцов. Затем система начала работать без сбоев.
Создавая правильные индексы для таблиц на основе запросов, используемых вашими приложениями, вы можете повысить производительность своего приложения.
Несмотря на то, что индексирование – такая большая тема для обсуждения в этом небольшом посте, давайте поговорим об основах индексов баз данных.
Что такое индекс базы данных?
Индекс базы данных – это структура данных, связанная с таблицей (или представлением), используемая для улучшения времени выполнения запросов при извлечении данных из этой таблицы (или представления). Он требует своего собственного дискового пространства и содержит копию данных индексированной таблицы.
Индекс можно построить с помощью оператора CREATE INDEX.
# Creating Index
CREATE INDEX index_name
ON table_name (column1, column2, ...);
# Creating Unique Index
CREATE UNIQUE INDEX index_name
ON table_name (column1, column2, ...);
Индекс может быстро получить данные из таблицы, содержащей значительное количество записей. Однако вы должны также учитывать стоимость, связанную с созданием и поддержанием структуры индекса. Чем больше индексов в таблице, тем быстрее операторы SELECT, но медленнее операторы INSERT, UPDATE и DELETE.
Важно учитывать, как данные используются при создании индекса. Вы будете индексировать столбцы, которые вы часто ищете, столбцы, которые вы сортируете, и внешние ключи.
Лучшие практики для индексов баз данных
- Создание индексов на основе использования.
- Индекс поиска (ГДЕ) столбцы.
- Сортировка индекса (ORDER BY) столбцы.
- Группировка индекса и агрегированные столбцы
- Индекс по всем иностранным ключам
- Индекс уникальный столбец (первичный ключ)
- Используйте кластерный индекс для больших таблиц
- Удалить неиспользуемые индексы
Это основное правило индексации. Я буду продолжать обновлять этот пост.
Спасибо за чтение.
Источник записи: https://thedebuggers.com