Оптимизируйте порядок запросов MySQL в результатах, используя GROUP BY и количество - PullRequest
0 голосов
/ 26 ноября 2011

У меня следующий запрос:

SELECT vBrowser,iconBrowser, count(iconBrowser) as 'N'
FROM user_ip_tmp  WHERE code='9m9g9tsv2y'
GROUP BY iconBrowser
ORDER BY N DESC
LIMIT 40

И это работает правильно. Но бредовый запрос причины занял много времени.

Showing rows 0 - 17 ( 18 total, Query took 4.4189 sec)

enter image description here

enter image description here

enter image description here

1 Ответ

1 голос
/ 26 ноября 2011

Вещи, которые есть в выражении WHERE, должны быть проиндексированы.

Попробуйте использовать оператор EXPLAIN перед вашим SELECT, чтобы увидеть, что и как используется для повторного запроса запрошенных вами результатов.

И если столбец code не является уникальным значением,Я бы порекомендовал положить его в другую таблицу, где он уникален.Затем создайте запрос, используя JOIN, хотя FOREIGN KEY.

...