Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / MySQL Новый топик    Ответить
 радикально тормозит запрос после переезда с 5.6 на 8.0  [new]
sgala
Member

Откуда:
Сообщений: 27
радикально тормозит запрос после переезда с 5.6 на 8.0
my.cnf абсолютно одинаковые.

запрос
автор
insert into table2 (
select * from table1 where md5 in (
select md5 from table 1 group by md5 having count(*)>1
)
)

во всех таблицах два поля mediumint - md5 и id_md5
смысл запроса - переложить в новую таблицу только те записи, которые встречаются больше одного раза

строк - больше 5млн, самый вложенный запрос возвращает около 5 тысяч, на инсерт уже уходит около 8 тысяч

На старом серваке - запрос отрабатывал за 15-30 секунд,
эксплеин показывает нечто вроде
автор
1 PRIMARY table1 ALL NULL NULL NULL NULL 4131264 Using where
2 SUBQUERY table1 ALL NULL NULL NULL NULL 4131264 Using temporary; Using filesort

На новом серваке я уже устал ждать, минут 30 жрет ресурсы мускула вовсю и нигугу
эксплеин показывает нечто вроде
автор
автор
1 PRIMARY table1 ALL NULL NULL NULL NULL 4131264 Using where
2 SUBQUERY table1 ALL NULL NULL NULL NULL 4131264 Using temporary


Подскажите куда копать - в идеале восстановить старое поведение мускула, т.к. проект большой и я чувствую что там еще много таких подводных камней с изменением поведения будет.
1 ноя 20, 09:30    [22224251]     Ответить | Цитировать Сообщить модератору
 Re: радикально тормозит запрос после переезда с 5.6 на 8.0  [new]
miksoft
Member

Откуда:
Сообщений: 38555
sgala,

Индекс по полю md5 не пробовали сделать?
1 ноя 20, 19:01    [22224456]     Ответить | Цитировать Сообщить модератору
 Re: радикально тормозит запрос после переезда с 5.6 на 8.0  [new]
sgala
Member

Откуда:
Сообщений: 27
miksoft,

С индексом тормоза начинаются на обоих базах как сейчас на 8-ке, поэтому в свое время было принято решение его не ставить.

Проблема решена,
к запросу
select md5 from table 1 group by md5 having count(*)>1
приписан хвост order by md5
В 5.6 по умолчанию была сортировка по группируемому полю (из-за чего раньше order by null дописывали), в 8-ке ее убрали.

Тем не менее вопрос "что за на фиг" остается. Причины тут интереснее самого факта решения.
2 ноя 20, 04:36    [22224579]     Ответить | Цитировать Сообщить модератору
 Re: радикально тормозит запрос после переезда с 5.6 на 8.0  [new]
ScareCrow
Member

Откуда: Белый город
Сообщений: 17102
автор
Тем не менее вопрос "что за на фиг" остается. Причины тут интереснее самого факта решения.


performance schema тебе в помощь

Сообщение было отредактировано: 2 ноя 20, 11:06
2 ноя 20, 11:10    [22224667]     Ответить | Цитировать Сообщить модератору
Все форумы / MySQL Ответить