Привет! mysql 5.7. есть запрос - джоин нескольких таблиц +

фильтр по времени.
выполняю с двумя разными диапазонами дат: в одном диапазон 3 дня, в другом - 4. при этом второй запрос выполняется вечность.
explain показывает, что выбран другой индекс. если зафорсить хинтом "правильный индекс", то всё отрабатывает быстро. налицо неправильная статистика распределения значений.
однако ANALYZE TABLE проблему не решает.
вычитал про innodb_stats_transient_sample_pages и innodb_stats_persistent, но, т.к. опыта с мускулом не много не уверен. что оно поможет.

стоит играться с этими настройками? кто-то пробовал?

4 ответов

2 просмотра
Какой-то Хмырь- Автор вопроса

короче, analyze всех таблиц не помог. зато после поднятия innodb_stats_persistent_sample_pages с 20 до 2000 оптимизатор начал выбирать подходящий индекс

Какой-то Хмырь
короче, analyze всех таблиц не помог. зато после п...

Ты сам запрос так и не показал, может его переписать лучше на in или exists?

Какой-то Хмырь- Автор вопроса

SELECT left(src,2) as `region_number`, firstname, left(src,4) as `colnum`, company, DATE_FORMAT(starttime,'%Y-%u') as `year-week`, DATE_FORMAT(starttime,'%Y-%m-%d') as `date`, call_price, count(starttime) as `number of calls`, sum(sessiontime) div 60 `traffic_minutes` FROM random_db.call LEFT JOIN random_db.call_cost ON call.sessionid=call_cost.sessionid and call.uniqueid=call_cost.uniqueid LEFT JOIN random_db.agent on id_agent=agent.id WHERE call.starttime BETWEEN '2022-03-28 00:00:00' and '2022-04-01 23:59:59' and id_agent in (1,22,15,745............) and sessiontime BETWEEN 1 and 900 and `calledstation` RLIKE '^00' GROUP BY id_agent, `date`, call_price;

Похожие вопросы

Обсуждают сегодня

Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
Всем привет В общем надо на странице вакансии вывести вакансии с hh, но когда я пишу код в разделе Code ошибка Invalid URL format. The URL should start with the forward slash...
A da
1
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
мне как апи hh написать?
A da
3
Привет! Подскажите может кто сталкивался, при создании купона выходит вот в таком виде окно. Как поправить это?
Ruslan
4
где собака, админ группы? нычкуется и боится проявить волю, в толерантность еще не наигрался? @yelizariev
Ognezar
61
Помните я тут рассказывал про таролога программистку? Мне выдали новый мем
Magic
6
Карта сайта