|
|
|
Требуется помощь в оптимизации запроса
|
|||
|---|---|---|---|
|
#18+
Составной индекс имеется: votes_summ_votes_count ON game(votes_summ,votes_count), но как видно из Explain - не используется. Из мануала вычитал, что если Сортировка ORDER BY делается по нескольким ключам, то это как раз тот один из некоторых случаев, когда MySQL не может использовать индексы, чтобы выполнить ORDER BY. Можно ли как-то оптимизировать данный запрос? Код: sql 1. 2. 3. 4. Explain и SHOW INDEX FROM game: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 11:48:52 |
|
||
|
Требуется помощь в оптимизации запроса
|
|||
|---|---|---|---|
|
#18+
У тебя выполняется сортировка по выражению, а не по совокупности полей, входящих в индекс. Индекс тут вообще не при делах. Хочешь оптимизировать - введи дополнительное поле, в которое заноси предрасчитанное соотношение, индексируй его и используй при сортировке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 11:55:19 |
|
||
|
Требуется помощь в оптимизации запроса
|
|||
|---|---|---|---|
|
#18+
okuznetsovМожно ли как-то оптимизировать данный запрос? Код: sql 1. 2. 3. 4. Нет, нельзя. WHERE нет. Есть только ORDER BY. Но он по выражению. Индексов на выражение в MySQL вроде пока ещё нет. Всё, других поводов для оптимизации нет. Да, если таблица очень большая, запрос фактически работать не будет. Есть вариант с рефакторингом БД и запроса -- нужно добавить вычисляемое поле specific_vote_summ = votes_summ/votes_count (поле нужно при этом вычислять самому, например, в триггере или процедуре), создать на него индекс, и в запросе использовать сортировку именно по этому полю. Тогда запрос будет работать O(1). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2015, 13:59:59 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=132&tid=1832993]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 307ms |

| 0 / 0 |
