当前mysql版本为5.5。我把一个副本升级到5.6版本。
下面的查询从5.5得到15秒执行。但是5.6版本运行相同的查询需要750+s。
查询:
SELECT SQL_NO_CACHE *
FROM RECORDS
LEFT OUTER JOIN AUTH ON RECORDS.`id` = AUTH.`id`
LEFT OUTER JOIN STAFFCOMMENTS ON RECORDS.`id` = STAFFCOMMENTS.`id`
WHERE (ODATE LIKE '%Jan%')
AND (ODATE LIKE '%2021%')
AND RECORDS.NAME <> 'CUSTOMER'
AND (RECORDS.NAME <> 'COURIER-ORDER')
order BY RECORDS.ID DESC
LIMIT 35000
假设ODATE
的数据类型为DATE
或DATETIME
(它应该是!),更改
(ODATE LIKE '%Jan%')
AND (ODATE LIKE '%2021%')
ODATE >= '2021-01-01'
AND ODATE < '2021-01-01' + INTERVAL 1 MONTH
让我们看看这些指标,这样我们就可以判断它们是否可以改进。