【发布时间】:2021-09-15 18:43:12
【问题描述】:
当前的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
【问题讨论】:
-
总是为所有invilved的表添加create table和一个EXPLAIN SELECT *来查看使用了哪些索引
-
语法“RECORDS BY”是什么意思?
-
多少内存? my.cnf 文件是否相同?
RECORDS有多少行?ODATE在哪个表中?ODATE的数据类型是什么? -
严肃问题:为什么要费心将服务器升级到不再受支持的软件版本? 5.6 已于 2021 年 2 月终止支持。为什么不选择最新的稳定软件版本? en.wikipedia.org/wiki/MySQL#Release_history
-
谢谢大家。我的数据库引擎是 mysql 5.5 版本的 MISAM。我在 mysql 5.6 版本中将引擎更改为 InnoDB。它解决了问题
标签: mysql full-text-search query-optimization mysql-5.6 mysql-5.5