首页 > 解决方案 > 升级到5.6后Mysql在所有字段中搜索字符串变慢

问题描述

当前的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 

标签: mysqlfull-text-searchquery-optimizationmysql-5.6mysql-5.5

解决方案


假设ODATE是数据类型DATEDATETIME(它应该是!),改变

       (ODATE LIKE '%Jan%')
  AND  (ODATE LIKE '%2021%')

       ODATE >= '2021-01-01'
  AND  ODATE  < '2021-01-01' + INTERVAL 1 MONTH

然后向我们展示这些指标,以便我们判断它们是否可以改进。


推荐阅读