Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / запросы стали тормозить с "Sorting result" / 6 сообщений из 6, страница 1 из 1
05.08.2013, 03:10:10
    #38354643
despicable me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы стали тормозить с "Sorting result"
Есть база под MariaDB, все таблицы - MyISAM.
Сегодня в processlist стало видно, что наиболее часто используемые SELECT'ы, задействующие полнотекстовый поиск, поголовно тормозят на стадии "Sorting result". EXPLAIN пишет "Using where; Using filesort".
Количество строк в таблице едва перевалило за 1 млн, но, полагаю, само по себе это никак не может быть причиной.
Пробовал немного покрутить sort_buffer_size и tmp_table_size, но эффекта не заметно. Затыка в I/O нет, грузится только проц.

Проблемный запрос вцелом выглядит следующим образом
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT id, title, author, ...
FROM records
WHERE
( MATCH(title) AGAINST(... IN BOOLEAN MODE) OR MATCH(author) AGAINST(... IN BOOLEAN MODE) )
AND
...
ORDER BY title ASC LIMIT 0, 10;
...
Рейтинг: 0 / 0
05.08.2013, 03:40:49
    #38354648
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы стали тормозить с "Sorting result"
despicable meЕсть база под MariaDB, все таблицы - MyISAM.
Сегодня в processlist стало видно, что наиболее часто используемые SELECT'ы, задействующие полнотекстовый поиск, поголовно тормозят на стадии "Sorting result". EXPLAIN пишет "Using where; Using filesort".
Количество строк в таблице едва перевалило за 1 млн, но, полагаю, само по себе это никак не может быть причиной.
Пробовал немного покрутить sort_buffer_size и tmp_table_size, но эффекта не заметно. Затыка в I/O нет, грузится только проц.

Проблемный запрос вцелом выглядит следующим образом
Код: plsql
1.
2.
3.
4.
5.
6.
7.
SELECT id, title, author, ...
FROM records
WHERE
( MATCH(title) AGAINST(... IN BOOLEAN MODE) OR MATCH(author) AGAINST(... IN BOOLEAN MODE) )
AND
...
ORDER BY title ASC LIMIT 0, 10;



1. не стесняйтесь, проведите весь ЕКСПЛАЙН план

2. не стесняйтесь, проведите полный СКЛ, ну если там
что-то военное-секретное -- переименуйте.

3. OR рекомендуется заменить на два запроса о обьединить
UNION ALL.

4. полезно сделать АНАЛИЗЕ ТАБЛЕ (или ОПТИМИЗЕ, я не помню
для каких движков что полезнее) для сбора статистики.

5. как проверяли И/О, ЦПЮ?
...
Рейтинг: 0 / 0
05.08.2013, 04:04:32
    #38354650
despicable me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы стали тормозить с "Sorting result"
javajdbc1. не стесняйтесь, проведите весь ЕКСПЛАЙН план
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
           id: 1
  select_type: SIMPLE
        table: records
         type: ALL
possible_keys: [одно из полей, используемых в WHERE; если фильтрацию по нему исключить, то NULL]
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 1003872
     filtered: 100.00
        Extra: Using where; Using filesort

javajdbc2. не стесняйтесь, проведите полный СКЛ, ну если там
что-то военное-секретное -- переименуйте.
Больше ничего существенного нет, даже если исключить из запроса те условия, которые я не привёл, это принципиально ничего не меняет. Также как и использование/неиспользование SQL_CALC_FOUND_ROWS не влияет на проблему.

javajdbc5. как проверяли И/О, ЦПЮ?
Zabbix следит. iotop тоже ничего вызывающего не показывает.
...
Рейтинг: 0 / 0
05.08.2013, 04:26:03
    #38354653
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы стали тормозить с "Sorting result"
despicable me,

Пункты 1-4 остались в силе.

5. ОК, понятно.

6. Приведит структуру таблицы : SHOW CREATE TABLE

7. Сколько строчек веернет запрос если убрать ЛИМИТ 10 ?

7. Если ли у вас особые причины не отвечать точно на пункты 1-4 ?
...
Рейтинг: 0 / 0
05.08.2013, 04:35:27
    #38354654
despicable me
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы стали тормозить с "Sorting result"
Окей, уже сам разобрался. У таблицы был составной индекс из нескольких колонок, вот эти все title, author и др. Накануне была изменена логика приложения в части конструктора запросов, набор фильтруемых по умолчанию колонок поменялся, соответственно самый основной индекс не работал. Стыд-позор.
...
Рейтинг: 0 / 0
05.08.2013, 04:44:12
    #38354655
javajdbc
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
запросы стали тормозить с "Sorting result"
despicable meОкей, уже сам разобрался. У таблицы был составной индекс из нескольких колонок, вот эти все title, author и др. Накануне была изменена логика приложения в части конструктора запросов, набор фильтруемых по умолчанию колонок поменялся, соответственно самый основной индекс не работал. Стыд-позор.

OK, бывает.
Успехов.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / запросы стали тормозить с "Sorting result" / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]