|
Помогите оптимизировать MySQL запрос с полнотекстовым индексом
| ☑ |
0
Помогите
29.06.16
✎
16:35
|
Если из запроса убрать сортировку, то работает моментально. С сортировкой жутко тормозит потому что не используется индекс по колонке price. Как исправить?
SELECT * FROM Test
WHERE MATCH (name) AGAINST ('go*' IN BOOLEAN MODE)
ORDER BY price
LIMIT 30
|
|
1
Зая Бусечка
29.06.16
✎
16:39
|
Добавь индекс
|
|
2
Помогите
29.06.16
✎
16:42
|
Не тролльте пожалуйста. Вопрос серьезный и сложный.
|
|
3
Зая Бусечка
29.06.16
✎
16:42
|
"не используется индекс по колонке price"
Ответ очевиден...
|
|
4
Помогите
29.06.16
✎
16:47
|
(3) Если бы ответ был очевиден, я бы тут не задавал вопрос. Вот это очевидно.
|
|
5
Зая Бусечка
29.06.16
✎
16:47
|
(4) Индекс уже добавил?
|
|
6
Помогите
29.06.16
✎
16:48
|
(5) Какой индекс? Составной?
|
|
7
Помогите
29.06.16
✎
16:49
|
Или тот который не используется?
|
|
8
ovrfox
29.06.16
✎
16:58
|
Два разных индекса для упорядочивания одной таблицы не могут быть использованы одновременно.
Первым автоматически используется индекс, необходимый для условия Where.
Упорядочивание результата замедляет процесс в любом случае, насколько - зависит от величины таблицы.
Использование определенного индекса - это ручное управление планом запроса - как это сделать не подскажу.
|
|
9
Помогите
29.06.16
✎
17:03
|
(8) Ручное переключение на другой индекс могу сделать, но оно только еще больше замедлит запрос. Это не то что нужно.
Значит решения нет?
|
|
10
Помогите
29.06.16
✎
17:04
|
ЗЫ: таблицу можно модифицировать, еслив чо
|
|
11
ovrfox
29.06.16
✎
17:32
|
Если переключение индекса вручную не ускоряет, значит ничего сделать нельзя. В любом случае упорядочивание результата превращает динамическую таблицу в статическую. Т.е. Вызывает замедление выдачи результата.
|
|
12
Помогите
29.06.16
✎
17:53
|
(11) Сам придумал как ускорить. Но все равно спасибо за попытку помочь.
Темку можно закрыть.
|
|
13
Mankubus
29.06.16
✎
18:09
|
(12) Не поделитесь способом?
|
|