查询更新 MySQL 5.0 vs 5.7

Posted

技术标签:

【中文标题】查询更新 MySQL 5.0 vs 5.7【英文标题】:Query Update MySQL 5.0 vs 5.7 【发布时间】:2018-06-08 08:37:24 【问题描述】:

我的查询性能有问题。我有这样的查询更新:

UPDATE table1
JOIN (SELECT table2.a, table2.b 
        FROM table2 
        JOIN table3 ON(table2.x = table3.x) 
        JOIN table4 ON(table4.o = table3.o) 
        GROUP BY table3.o) table_temp ON(table1.key = table_temp.key)
SET variable = table2.b;

mysql 5.0 中没问题,查询速度很快。但是由于我使用 MySQL 5.7 进行了更改,因此该查询的过程很慢。在 MySQL 5.0 中只需要第二次来处理它们,但在 MySQL 5.7 中,我在几分钟内完成了它。什么是我必须做的?

【问题讨论】:

新服务器索引是否与旧服务器索引相同 我正在使用完整备份并将其还原到新的 MySQL 版本。 你比较过执行计划吗? GROUP BY table3.o ... 坏消息是您的查询无效。好消息是,如果您告诉我们查询应该做什么,我们或许能够修复它。 请提供EXPLAIN UPDATE ...,最好是两个版本。 【参考方案1】:

您是否按照此链接中的建议调整了您的 mysql 5.7 安装?

https://www.percona.com/blog/2016/10/12/mysql-5-7-performance-tuning-immediately-after-installation/

【讨论】:

还是一样,让其他用户加锁,进程变慢【参考方案2】:

我已经完成了使用 Cursor 的更改方法并且可以完美地工作

【讨论】:

以上是关于查询更新 MySQL 5.0 vs 5.7的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL 8 VS MYSQL 5.7 到底ORACLE是怎么想的?

MySQL 5.7 启用查询日志

在 MySQL 5.7 中更新列枚举行号

来自 5.7 的 mysql 8 查询回归(怎么了?)

在 MySQL 5.7 中优化查询

查询(HAVING 子句)在 Mysql 版本 5.7 和 8.0 之间的行为不同