Mysql

MySQL 5.1 與 MySQL 5.5(5.1 快兩倍)

  • February 23, 2012

我最近在 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

在某些情況下,有時 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 以獲得所需的性能增強。

記住這一點

什麼是蘭博基尼?

引用自:https://serverfault.com/questions/362388