Page 1 of 1

Проблемы с таблицей rot_search_queries

Posted: Wed Jan 08, 2014 7:58 am
by vik_tgpteam
Суть проблемы - приблизительно раз в месяц начинает тупить сервак из-за того что на одном из слейвов она таблица rot_search_queries вырастает до какого то объёма.
запрос который тормозит - обычно что то вроде
Time: 99
State: Sending data
Info: SELECT SQL_CALC_FOUND_ROWS rs.* FROM rot_search_queries as rs WHERE 1 = 1 GROUP BY rs.gal_id, rs.search_query ORDER BY rs.hits DESC LIMIT 1, 52

Сейчас проблема лечится обнулением таблицы до нуля и через месяц всё это повторяется заново. Но это хирургия.
Таблица небольшая по объёму занимаемых данных, но большая по кол. строк в ней. Индексы в таблице есть, но не по всем полям используемым в запросе

Code: Select all

+--------------+------------------+------+-----+---------+-------+
| Field        | Type             | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+-------+
| search_query | varchar(255)     | NO   | PRI | NULL    |       |
| hits         | int(10) unsigned | NO   |     | 0       |       |
| gal_id       | int(10) unsigned | NO   |     | 0       |       |
| items_found  | int(10) unsigned | NO   |     | 0       |       |
| date         | date             | NO   | PRI | NULL    |       |
+--------------+------------------+------+-----+---------+-------+
Возможно что запрос неоптимален поскольку индексы только для двух полей а rs.gal_id - неиндексирован.
При размере таблицы за миллион записей начинаются траблы.
Встречалась такая проблема у кого либо ещё? Возможные пути решения?

З.Ы. Линку на дамп таблицы скинул в личку

Re: Проблемы с таблицей rot_search_queries

Posted: Wed Jan 08, 2014 1:09 pm
by admin
Хранит за последние history_length дней.
По дефолту это 30 дней и миллионов разницх запросов за 30 дней обычно не бывает.

В том что вы скинули данные за последние месяца 3 и в этом случае действительно есть проблема с большим кол-вом записей и индексы тут непричем. Хотя конечно если вы знаете как решить вопрос индексами - я только за, говорите что надо поменять.

Пока вижу 2 варианта решения вопроса.

1. сделать короче history_length
2. убрать ограничение по дням и тогда истори запросов будет не за последние Х дней, а за все время

Какой подходит ?

Re: Проблемы с таблицей rot_search_queries

Posted: Wed Jan 08, 2014 3:49 pm
by vik_tgpteam
Пока вижу 2 варианта решения вопроса.
1. сделать короче history_length
2. убрать ограничение по дням и тогда истори запросов будет не за последние Х дней, а за все время
Какой подходит ?
Первый явно проще

Re: Проблемы с таблицей rot_search_queries

Posted: Wed Jan 08, 2014 3:58 pm
by admin
ок, это вы можете самостоятельно сделать в сетингах.

Re: Проблемы с таблицей rot_search_queries

Posted: Wed Jan 22, 2014 11:00 am
by vik_tgpteam
Возвращаясь к проблеме - первый путь не помогает - таблица всё равно является тормозящим местом даже с историей 30 дней
Пока поставил чистку по крону до лучших времён

Re: Проблемы с таблицей rot_search_queries

Posted: Wed Jan 22, 2014 1:03 pm
by admin
Могу предложить сделать вариант 2 как и предлагал ранее, но по какой-то причине он вам не подошел как я понял.

Или у вас есть какой-то своей вариант предложить ?

Re: Проблемы с таблицей rot_search_queries

Posted: Wed Jan 22, 2014 1:52 pm
by vik_tgpteam
ну если это можно включить как тестовую опцию в очередной апдейт - тогда можно

Re: Проблемы с таблицей rot_search_queries

Posted: Wed Jan 22, 2014 3:33 pm
by admin