Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте уважаемые форумчане.
База innoDB
Такой вопрос, есть таблица, в ней поля (tinyint) c данным, предположим статусы от 0 до 9 и типы товара от 0 до 3 , вопрос нужно ли ставить индекс на эти поля? По ним идёт выборка и эти поля не являются внешними ключами.
Спасибо за внимание!
Отредактированно darklight (15.06.2016 08:47:11)
Неактивен
SELECT task.id,
task.title,
task.title_translit,
task.payment_type,
task.currency,
task.payment_amount,
task.date,
task.status,
task.id_customer,
task.id_city,
user_profile.firstname,
user_profile.lastname,
user_profile.avatar_path,
task_adress.adress
FROM {{%task}}
LEFT JOIN {{%user_profile}} ON user_profile.user_id = task.id_customer
LEFT JOIN {{%task_adress}} ON task_adress.id_task = task.id
WHERE task.status IN (:status) AND task.type = :type
Пример запроса
Отредактированно darklight (15.06.2016 09:59:03)
Неактивен
попробуйте
Неактивен
Спасибо, попробую !!!
Неактивен
Необходимость в индексе зависит от статистики данных (селективности). Если вам запросом нужно выбрать редкие данные, тапример из тысяч товаров выбрать всего несколько товаров у которых определенный статус, то чтобы СУБД не делал фулскан, потребуется индекс. А если у вас всегда выбора с ограничением по эти полям отдает 90% строк, то смысла особого нет.
Неактивен
Ну как бы товаров много будет (десятки тысяч) в каждом разделе и для фильтра нужно выбирать по статусу и типу по 20-50 товаров на одной странице
Неактивен