ВНЕШНЕЕ СОЕДИНЕНИЕ В DATETIME, вызывающее декартово соединение в MySQL 5.7
Я перевожу систему (в настоящее время работающую в базе данных MySQL 5.5) в AWS (работающую в MySQL 5.7). Я сталкиваюсь с проблемой производительности, когда ряд запросов, которые нормально работают на старой системе, работают на новой очень медленно. План объяснения некоторых проблемных запросов показывает декартово объединение, возникающее при объединении двух временных таблиц в полях DATETIME. Я проверил и перепроверил определения таблиц и не могу найти никакой разницы между старой и новой системой. Очевидно, мой Google Fu слабый, потому что я не могу найти никаких ссылок на эту проблему при миграции. Один из примеров запросов
SELECT
cal.CalDate DateAndTime,
MAX(COALESCE(wat.WaterUsed, 0)) Water
FROM
(SELECT
(wt.`Date` + INTERVAL wt.`Interval` HOUR) wtDate,
wt.WaterUsed WaterUsed,
wt.Sensor_SN waterSensorSN
FROM
Water_Used_Log wt
WHERE
wt.Controller_ID IN (752)
AND wt.Sensor_SN = 'PFS0782'
AND (wt.`Date` + INTERVAL wt.`Interval` HOUR) BETWEEN DATE_SUB('2017-09-01 00:00', INTERVAL 1 HOUR) AND '2018-08-31 23:00') wat
RIGHT OUTER JOIN
Calendar cal ON cal.CalDate = wat.wtDate
WHERE
cal.CalDate BETWEEN DATE_SUB('2017-09-01 00:00',
INTERVAL 1 HOUR) AND '2018-08-31 23:00'
GROUP BY DateAndTime
ORDER BY DateAndTime ASC;
План объяснения MySQL 5.7:
Какие-либо предложения?