MySQL 5.1 vs MySQL 5.5(5.1 快两倍)

Dav*_*vid 4 mysql centos mysql5.1 mysql5.5 centos6.2

我最近在 CentOS 6.2 上安装了 MySQL 5.1,并且性能比我们正在运行的 MySQL 4.1 有所提升。所以我将 MySQL 5.1 升级到 MySQL 5.5,看看是否有更多的收益,但它的运行速度实际上是 MySQL 5.1 设置的一半。

我运行的测试是在一张有 230 万条记录和 blob 注释的表上进行的。

5.1:57.5899 秒

5.5:96.3821 秒

真正有趣的是,如果我提取 100,000 条记录,5.5 会击败 5.1,但之后的任何事情最终都会使 5.5 负载像尖峰一样;随着加载速度加快和减慢,这似乎是额外秒数的来源。

为什么会这样?5.1 和 5.5 的 my.cnf 相同

[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
Run Code Online (Sandbox Code Playgroud)

Rol*_*DBA 7

在某些情况下,有时 MySQL 5.1 可能会胜过 MySQL 5.5。

Percona 在 MySQL 的多个版本中进行了一次烘焙

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1(内置 InnoDB)
  • 带有 InnoDB 插件的 MySQL 5.1
  • MySQL 5.5
  • MySQL 5.6

所有测试都是在未配置 MySQL 的情况下执行的(换句话说,没有创建 my.cnf)。结果?

  • MySQL 4.1 在 InnoDB 单线程下表现最好
  • 带有 InnoDB 插件的 MySQL 5.1 在多核上的扩展性优于 5.1 内置 InnoDB、5.5 和 5.6

如果您希望较新版本的 MySQL 性能更好,则必须对其进行调整。事实上,我在 DBA StackExchange 中描述了执行 MySQL Bakeoff 的想法

我的意思是什么?

在 MySQL 5.5 中,有新的 InnoDB 选项可用于利用更多专用读线程、写线程和整体 I/O 容量。这可以在多核服务器中使用更多 CPU。如果不进行配置,MySQL 5.5 将在大多数情况下与旧版本的 MySQL 相同的水平上运行。有时,它的表现可能更糟。

从以下几个方面思考:

  • 垃圾进垃圾出
  • 你得到你所付出的
  • 两个字:尽职尽责

底线:MySQL 5.5 和 Percona Server 必须配置为所需的性能增强。

记住这一点

什么是兰博基尼?