带有 MySQL 5.6 的 Solaris 10 中的 MySQL 性能问题
Posted
技术标签:
【中文标题】带有 MySQL 5.6 的 Solaris 10 中的 MySQL 性能问题【英文标题】:MySQL performance issue in Soalris 10 with MySQL 5.6 【发布时间】:2017-03-09 09:01:56 【问题描述】:我在 mysql 5.6 升级时遇到了性能问题。
操作系统版本:Solaris 10
语言:Perl 脚本
MySQL 版本:MySQL 从 5.1 升级(逻辑升级-在同一服务器上安装 5.6 并在 5.6 中恢复)
内存:64 GB
我已在 solaris 10 中将 MYSQL 形式 5.1 升级到 5.6,并将所有 mysql 表从 MYISAM 转换为 INNODB,因为 mysql 5.6 的默认存储引擎为 INNODB。我的数据库大小为 4.5 GB,并添加了 innodb 的参数。
innodb_file_per_table
innodb_flush_method=O_DIRECT
innodb_log_file_size=512 M
innodb_buffer_pool_size=5 G
我的应用程序在执行事务时创建了一些临时表,因此我创建了 tmp_table_size
和 max_heap_table_size
到 512 M。
在应用程序中有 3 个模块,其中 2 个工作正常,而在第三个模块中,它与 MySQL 5.1 相比非常慢。它包含近 20 多个更新语句,并与临时表和主表进行一些连接,其中一些表中包含 200 万条记录。
我制定了解释计划并对查询进行了分析。在分析中,我观察到发送数据需要大量时间,因为这种性能会下降。
任何人都可以就此提出建议以提高性能。
【问题讨论】:
【参考方案1】:solaris10 和 mysql 从 5.1 升级到 5.6 也有类似的问题。 我进行了逻辑升级,在恢复时需要很长时间才能恢复 1Gb 数据库。我尝试过 inplace upgrde 并发现了类似的性能问题。
只是我有运行过去 3.5 年的 solaris 10 服务器。所以我重新启动了我的服务器,以便清除所有缓存,重新启动后我启动了所有数据库服务。
注意:在重新启动之前停止所有服务,最好创建另一个 5.1 数据库版本并进行备份并开始就地升级活动。最好使用就地而不是进行逻辑升级。两者都是一样的,但恢复时需要更多时间。
【讨论】:
以上是关于带有 MySQL 5.6 的 Solaris 10 中的 MySQL 性能问题的主要内容,如果未能解决你的问题,请参考以下文章
带有 MySQL Server 5.6 的 Liferay 7 未启动
[ Laravel 5.6 文档 ] 进阶系列 —— 任务调度