К примеру, есть таблица по какой-то сущности, например с квартирами:
- id
- floor (этаж)
- area_size (площадь)
- room_count (кол-во комнат)
- created_at
По умолчанию при заходе на мой сайт происходит сортировка по дате создания (полю created_at), но при этом можно выбрать сортировку по всем другим значениям.
Также есть фильтр по поиску всех значений (в т.ч. комбинированных).
Как я знаю индекс нужно добавлять на поля, которые участвуют в where, join, order by, group by.
Неужели мне нужно добавить индекс на все эти поля?
Или добавить только на created_at?
Или вообще не добавлять?
Чисто из хрустального шара - данные меняются редко, а на секундную задержку при вставке или корректировке воскласть. Если так - лепи индексов столько, на сколько фантазии и совести хватит.
А с учётом "10 записей" на быстродействие вообще плевать. Передача на клиента и отрисовка будут го-о-ораздо дольше, чем выборка и сортировка.
Роман Сарваров, скорее всего, на таких маленьких объёмах MySQL не будет использовать индекс, даже если вы его создадите. Вообще индексы нужно создавать тогда, когда нужно, либо тогда, когда вы 100% уверены, что он нужен и должен быть именно таким. Для того, чтобы понять, нужен ли индекс, есть оператор EXPLAIN.