SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 15.06.2016 08:43:57

darklight
Участник
Зарегистрирован: 15.06.2016
Сообщений: 4

Вопрос по индексам.

Здравствуйте уважаемые форумчане.

База innoDB
Такой вопрос, есть таблица, в ней поля  (tinyint) c данным, предположим статусы от 0 до 9 и типы товара от 0 до 3 , вопрос нужно ли ставить индекс на эти поля? По ним идёт выборка и эти поля не являются внешними ключами.

Спасибо за внимание!

Отредактированно darklight (15.06.2016 08:47:11)

Неактивен

 

#2 15.06.2016 09:52:43

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Вопрос по индексам.

может да, может нет.
зависит от запросов и распределения данных
посмотрите ещё FAQ №5

Неактивен

 

#3 15.06.2016 09:56:51

darklight
Участник
Зарегистрирован: 15.06.2016
Сообщений: 4

Re: Вопрос по индексам.

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)

Неактивен

 

#4 15.06.2016 10:09:59

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Вопрос по индексам.

попробуйте

alter table task add index(`type`,`status`);

сравните как изменится скорость выполнения запроса. практика - критерий истины

Неактивен

 

#5 15.06.2016 10:43:57

darklight
Участник
Зарегистрирован: 15.06.2016
Сообщений: 4

Re: Вопрос по индексам.

Спасибо, попробую !!!

Неактивен

 

#6 17.06.2016 09:11:17

maestra
Участник
Зарегистрирован: 10.12.2015
Сообщений: 2

Re: Вопрос по индексам.

Необходимость в индексе зависит от статистики данных (селективности). Если вам запросом нужно выбрать редкие данные, тапример из тысяч товаров выбрать всего несколько товаров у которых определенный статус, то чтобы СУБД не делал фулскан, потребуется индекс. А если у вас всегда выбора с ограничением по эти полям отдает 90% строк, то смысла особого нет.

Неактивен

 

#7 21.06.2016 09:50:49

darklight
Участник
Зарегистрирован: 15.06.2016
Сообщений: 4

Re: Вопрос по индексам.

Ну как бы товаров  много будет (десятки тысяч) в каждом разделе и для фильтра нужно выбирать по статусу и типу по 20-50 товаров на одной странице

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson