Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день!
Прошу помощи. Запутался даже не в трех соснах, а в дух.
Есть запрос
Отредактированно klow (04.09.2019 12:11:13)
Неактивен
Выглядит как бага. Пробовали запустить на ванильном MySQL?
Я бы попробовал сделать воспроизводимый случай и зарепортил в Марию.
Конкретно про починку «чтобы работало» — можно добавить use index / force index на вторую таблицу. Возможно, базе также не будет сносить крышу, если условие на tid вынести в подзапрос (тогда снаружи останется только условие на id): это в любом случае только ускорит его.
Неактивен
Спасибо за ответ!
На MySQL не пробовал.
use index / force index - пробовал. Без результата. Был очень удивлен.
Не думаю, что условие на tid в подзапросе укорит выполнение, я не про этот случай, а в общем. Так как нужно делать условие не на
Отредактированно klow (06.09.2019 09:47:58)
Неактивен
Попробую написать скрипты воспроизведения этой проблемы.
Неактивен
Так. У меня воспроизводится (MySQL 8.0.17), и заодно там написан ответ, почему так.
Если сделать EXPLAIN EXTENDED, то видно, что MySQL пытается вести себя умно — преобразовывает запрос:
Неактивен
Спасибо!
Кстати это именно тот скрипт, на который мне и нужен был. Именно на нем я и увидел этот баг, но переделал в подзапрос, чтобы исключить влияние скорости выполнения самой функции.
Неактивен