mysql db 企业版从 5.5.42 升级到 5.7.11
mysql db enterprise upgrade from 5.5.42 to 5.7.11
全部,
我们的产品使用 Mysql 企业数据库。目前为 5.5.42,但计划升级到 5.7.latest。我应该看到哪些变化?
我感兴趣的是:
1) 性能影响
2) 行为不端
3) 行为改变
4) 改进——功能和性能方面
是否建议首先升级我们的产品以使用 5.6.x 然后再使用 5.7.x 或直接升级到 5.7.x 然后 test/QA从那里 ?任何输入都将是有价值的。
5.5 和 5.7 之间有巨大的变化。把他们都招到这里根本不切实际。我会尽量强调最重要的。显然还有很多 new features introduced(GTID、半同步复制、JSON 支持、虚拟列等)。
1) 表现
您应该期待性能提升,因为 5.6 和 5.7 在互斥处理方面有了很大改进,因此预计争用会减少。
还改进了可伸缩性,因此您可以进一步扩展服务器,performance/query容量比以前更长。
优化器有很多变化。因此,请务必检查您的查询。
归根结底,您应该始终根据自己的申请检查自己的情况。
2+3) 改变和损坏的行为
密码过期。在 5.7 中,密码可以有过期时间。只是需要注意的事情。
密码管理命令已更改,因此请确保在您对自动化被破坏感到惊讶之前检查它们。
由于优化器和成本模型发生了很大变化,一些查询的执行方式可能有所不同。
我要特别提到的两个参数让我们有些头疼:查看 optimizer_switch
并决定打开和关闭什么。 range_index_dive_limit
默认值在 5.7.4+ 中默认从 10 提高到 200。因为我看到这个参数很少在任何 my.cnf 中设置,这个新的默认值可能会影响你很多时间。
4) 改进
很多。正如我在上面所写的那样,有许多新功能和可扩展性,性能改进旨在为您提供更好的服务。
5) 升级路径
是的,最好一次进行一次主要升级,测试并在一切正常时进行第二次主要升级。
兼容性 - 升级时您最关心的问题。因为你的 codes/syntaxes 是用低版本制作的,所以期望它们的行为有所不同,因为其中一些将无效或无法被新版本识别(如果你跳到更高的版本会产生很大的影响) .
通常情况下,您会在新版本中获得更高的性能、安全性等,但您需要调整 codes/syntaxes 以应对新的功能和特性。
性能
5.7 中的性能提升只能在高负载系统上实现。如果您的并行执行少于 40-60,那么预计性能会下降 10% 左右。这非常依赖于系统和负载。总是测试自己!
这是 Percona 完成的 MySQL 5.7 性能测试:https://www.percona.com/blog/2016/05/17/mysql-5-7-read-write-benchmarks/
改变和损坏的行为,改进
5.7 中有很多变化。检查此 link 以获取完整列表:http://www.thecompletelistoffeatures.com/
我想提一下升级过程中应该考虑的以下变化:
- SQL_MODE 已更改。这对新安装很好,但对于旧系统,您很可能必须将其设置回旧值。
- 第一个 GA 版本密码过期,但在投诉后它在 5.7.11 中被禁用。所以现在不用担心了。
- SQL 优化器发生了很大变化。现在查询应该 运行 更快,但我预计有些查询可能 运行 更慢。大部分时间应该花在新版本的查询测试上!
以下是影响升级到 5.7 的所有更改的概述:
http://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html
升级
有两种升级方式:使用mysql_upgrade和mysql转储。
- mysql_upgrade一次选择一个版本。无需测试中间版本。仅测试最终版本。
- 用mysqldump直接到5.7。建议跳过 mysql 数据库。无法使用 mysqldump 迁移用户,请使用 grant 语句。
有关更多信息,请阅读:http://dev.mysql.com/doc/refman/5.7/en/upgrading.html
全部,
我们的产品使用 Mysql 企业数据库。目前为 5.5.42,但计划升级到 5.7.latest。我应该看到哪些变化?
我感兴趣的是:
1) 性能影响
2) 行为不端
3) 行为改变
4) 改进——功能和性能方面
是否建议首先升级我们的产品以使用 5.6.x 然后再使用 5.7.x 或直接升级到 5.7.x 然后 test/QA从那里 ?任何输入都将是有价值的。
5.5 和 5.7 之间有巨大的变化。把他们都招到这里根本不切实际。我会尽量强调最重要的。显然还有很多 new features introduced(GTID、半同步复制、JSON 支持、虚拟列等)。
1) 表现
您应该期待性能提升,因为 5.6 和 5.7 在互斥处理方面有了很大改进,因此预计争用会减少。
还改进了可伸缩性,因此您可以进一步扩展服务器,performance/query容量比以前更长。
优化器有很多变化。因此,请务必检查您的查询。
归根结底,您应该始终根据自己的申请检查自己的情况。
2+3) 改变和损坏的行为
密码过期。在 5.7 中,密码可以有过期时间。只是需要注意的事情。
密码管理命令已更改,因此请确保在您对自动化被破坏感到惊讶之前检查它们。
由于优化器和成本模型发生了很大变化,一些查询的执行方式可能有所不同。
我要特别提到的两个参数让我们有些头疼:查看 optimizer_switch
并决定打开和关闭什么。 range_index_dive_limit
默认值在 5.7.4+ 中默认从 10 提高到 200。因为我看到这个参数很少在任何 my.cnf 中设置,这个新的默认值可能会影响你很多时间。
4) 改进
很多。正如我在上面所写的那样,有许多新功能和可扩展性,性能改进旨在为您提供更好的服务。
5) 升级路径
是的,最好一次进行一次主要升级,测试并在一切正常时进行第二次主要升级。
兼容性 - 升级时您最关心的问题。因为你的 codes/syntaxes 是用低版本制作的,所以期望它们的行为有所不同,因为其中一些将无效或无法被新版本识别(如果你跳到更高的版本会产生很大的影响) .
通常情况下,您会在新版本中获得更高的性能、安全性等,但您需要调整 codes/syntaxes 以应对新的功能和特性。
性能
5.7 中的性能提升只能在高负载系统上实现。如果您的并行执行少于 40-60,那么预计性能会下降 10% 左右。这非常依赖于系统和负载。总是测试自己! 这是 Percona 完成的 MySQL 5.7 性能测试:https://www.percona.com/blog/2016/05/17/mysql-5-7-read-write-benchmarks/
改变和损坏的行为,改进
5.7 中有很多变化。检查此 link 以获取完整列表:http://www.thecompletelistoffeatures.com/
我想提一下升级过程中应该考虑的以下变化:
- SQL_MODE 已更改。这对新安装很好,但对于旧系统,您很可能必须将其设置回旧值。
- 第一个 GA 版本密码过期,但在投诉后它在 5.7.11 中被禁用。所以现在不用担心了。
- SQL 优化器发生了很大变化。现在查询应该 运行 更快,但我预计有些查询可能 运行 更慢。大部分时间应该花在新版本的查询测试上!
以下是影响升级到 5.7 的所有更改的概述: http://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html
升级
有两种升级方式:使用mysql_upgrade和mysql转储。
- mysql_upgrade一次选择一个版本。无需测试中间版本。仅测试最终版本。
- 用mysqldump直接到5.7。建议跳过 mysql 数据库。无法使用 mysqldump 迁移用户,请使用 grant 语句。
有关更多信息,请阅读:http://dev.mysql.com/doc/refman/5.7/en/upgrading.html