我们的应用程序使用MySql版本4.0.24很长一段时间 . 我们正在尝试将其迁移到5.6.27版 . 但是,在测试5.6.27的性能时,即使简单的选择和更新在我们进行负载测试时也要慢30-40% . CPU和IO速度比旧服务器好得多 . 两个版本中表的存储引擎都是MyIsam . 数据库只有一个连接 . 我们尝试了以下选项:
-
将存储引擎更改为InnoDb - 这大大降低了性能(降低了70%)
-
更改innodb日志大小和缓冲区大小 - 没有多大帮助
-
使用表的MyIsam存储引擎增加密钥缓冲区大小 . - 它没有任何区别
我们尝试修改其他参数,如query cache,tmp_table_size,heap_table_size . 但是,他们都没有任何区别 .
如果我们可以尝试其他任何选项,您能告诉我吗?
这是my.cnf的副本:
lower-case-table-names=1
myisam-recover=FORCE
key_buffer_size=2000M
2 回答
您可以看到的一些事情是两个服务器是否具有相同数量的RAM,因为旧服务器可能具有更多RAM,因此可以在内存中缓存更多内容 .
您还可以查看如何连接到MySQL服务器 - 是通过网络吗?网络速度/质量是否不同?一台服务器是在本地访问而另一台是通过网络访问的 .
您尝试调整一些好的参数,但是如果有一些您丢失的参数,您可以在两台服务器上运行
mysql -e 'show variables'
然后使用Winmerge之类的工具来比较两者的值,看看您可能没有的可能有什么不同想到 .尝试多个选项后,以下是适用于我们的配置 . 可能还有其他解决方案,但这对我们有用 .
Option 1:
关闭了性能架构
添加了几个jdbc连接参数:useConfigs = maxPerformance&maintainTimeStats = false
Option 2:
迁移到MariaDB . 从性能的角度来看,这非常好 . 与我们系统的mysql相比,它的性能提高了5% . 但是,由于非技术原因,我们无法继续使用此选项 .
感谢您的投入 .