我最近在CentOS 6.2上安装了MySQL 5.1,并且比我们运行的MySQL 4.1有更高的性能。 所以我把MySQL 5.1升级到MySQL 5.5,看看是否有更多的收获,但是它实际上只是MySQL 5.1安装的一半。
我运行的testing是在一张桌面上,有一百二十万条logging的blob笔记。
5.1:57.5899秒
5.5:96.3821秒
真正有意思的是,如果我拉下10万条logging,那么5.5会跳过5.1,但是最终会使5.5负载像尖峰一样; 加速和加速,这是多余的秒钟似乎来自哪里。
任何想法,为什么这是? 同样的my.cnf 5.1和5.5
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 bind-address = xxx.xxx.xxx.xxx #This option makes InnoDB to store each created table into its own .ibd file. innodb_file_per_table=1 max_allowed_packet=900M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
在某些情况下,MySQL 5.1可能会超越MySQL 5.5。
Percona在多个版本的MySQL之间进行了烘焙
所有的testing都是在未configurationMySQL的情况下进行的(换句话说,没有my.cnf)。 结果?
如果您希望更新版本的MySQL性能更好,您必须调整它。 实际上, 我在DBA StackExchange中描述了执行MySQL Bakeoff的想法 。
我是什么意思调?
在MySQL 5.5中, 有新的InnoDB选项用于利用更多的专用读取线程,写入线程和总体I / O容量 。 这可以在多核服务器上使用更多的CPU。 如果没有configuration ,MySQL 5.5将在相同级别的游戏场上运行,在大多数情况下,它们将作为旧版本的MySQL。 有时候,情况会变得更糟。
从以下方面考虑:
底线:MySQL 5.5和Percona服务器必须configuration所需的性能增强。
记住这一点
什么是兰博基尼?
如果你没有configuration数据库服务器或者configuration不好,你会得到这个兰博基尼
如果你正确地configuration数据库服务器,你会得到这个兰博基尼(这可能是你想要的)
你看到的问题可能是由几十个不同的根本原因造成的。 你绝对不应该猜测。 你当然需要仔细测量和诊断。 如果你收集了足够多的信息,真实的原因将是显而易见的,解决scheme将是显而易见的(假如你也了解服务器的内部知道你知道你在看什么)。 如果您猜测并尝试重新configuration服务器等操作,我的经验表明,您可能会使问题变得更糟,或导致其他问题,并且您永远不会知道是否有任何特定更改有帮助。
我build议使用Percona工具包中的pt-stalk工具来捕获服务器的一组诊断数据,当其中一个缓慢的尖峰发生时,以及当它运行得更快的时候。 在那里几乎肯定有足够的信息来了解正在发生的事情。 如果你不习惯从中做出诊断,任何有能力的MySQL支持提供者应该没有问题,如果你从pt-stalk中压缩样本并发送它们。
我的意思不是太重复或坚持,但是请不要在这个上使用反复试验。