@Alk90
php, mysql, jquery, css, html, api

Эффективен ли будет такой индекс?

Всем привет! Запутался с индексами...
Есть на сайте посты, который как правило ищутся по категории, либо сортируются по рейтингу. Но так жее, всегда проверяется поле status, которое имеет 6 статусов от 1 до 6.
Поэтому в выборке часто присутствует условие:
..... WHERE `category_id` = 12 AND `status` = 1 ORDER BY `rating` DESC

Правильным ли будет создать индекс на все три поля? А точнее эффективно ли будет добавлять в индекс поле, у которого только 6 уникальных значений? Правильно ли я понимаю, что лучше всего создать индекс category_rating где будут присутствоать только эти два поля?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 2
TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/
Индексирование столбцов, содержащих мало уникальных значений - бессмысленное занятие. Обычно, иднексы используют для получения не нескольких записей, а только одной.
Возможно, вам подойдут составные индексы.

Рекомендую https://ruhighload.com/ - много статей по оптимизации базы, включая индексирование: https://ruhighload.com/%d0%98%d0%bd%d0%b4%d0%b5%d0...
Ответ написан
Комментировать
@Vitsliputsli
И да, и нет. Один индекс по полю с 6 уникальными значениями будет очень маленьким, но позволит в 6 раз сократить обрабатываемую выборку, что неплохо. Но будет ли он также эффективен в составном индексе, не факт, зависит от данных в таблице.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы