Индекс производительности MySQL - PullRequest
0 голосов
/ 11 октября 2011

Я никогда не пойму правильное использование индекса MySQL.В каждом посте и документации, которые я читал, они просто говорят о простом указателе.У меня есть следующий запрос:

SELECT COUNT(sid),f_partner,COUNT(DISTINCT(cid)) FROM sal_forwarding WHERE 
forwardDate BETWEEN "2011-06-01" AND "2011-06-30" GROUP BY f_partner

Требуется 2 минуты, чтобы прочитать данные.:( В таблице 1,4 миллиона данных.

Вот результат объяснения:

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   SIMPLE  sal_forwarding  index   forwardDate,forwardDate_2,forwardDate_3 f_partner   25  (NULL)  1416282 Using where

Мой индекс - (f_partner, forwardDate). Какое правильное решение для повышения производительности?

f_partner = varchar(20)
forwardDate = Date

Большое спасибо.

1 Ответ

1 голос
/ 11 октября 2011

Индекс должен быть (forwardDate, f_partner) - сначала выполнить предложение where, затем group_by

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...