web-dev-qa-db-ja.com

MySQL 5.1とMySQL 5.5(5.1倍の速度)

最近、MySQL 5.1をCentOS 6.2にインストールし、実行中のMySQL 4.1よりもパフォーマンスが向上しました。そこで、MySQL5.1をMySQL5.5にアップグレードして、さらに多くのメリットがあるかどうかを確認しましたが、実際にはMySQL5.1セットアップの半分の速度で実行されました。

私が実行したテストは、ブロブノートを含む230万レコードのテーブルで行われました。

5.1:57.5899秒

5.5:96.3821秒

本当に興味深いのは、10万レコードをプルすると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
4
David

MySQL 5.1は、特定の状況下でMySQL 5.5よりもパフォーマンスが優れている場合があります。

PerconaはMySQLの複数のリリース間でベイクオフを実行しました

  • MySQL 4.1
  • MySQL 5.0
  • MySQL 5.1(組み込みのInnoDBを使用)
  • InnoDBプラグインを使用したMySQL5.1
  • MySQL 5.5
  • MySQL 5.6

すべてのテストは、MySQLを構成せずに実行されました(つまり、my.cnfは作成されませんでした)。結果?

  • MySQL 4.1はInnoDBシングルスレッドで最高のパフォーマンスを発揮します
  • MySQL 5.1とInnoDBプラグインは、5.1の組み込みInnoDB、5.5および5.6よりも優れた複数のコアで拡張できます

新しいバージョンのMySQLのパフォーマンスを向上させたい場合は、それに合わせて調整する必要があります。実際、 DBA StackExchangeでMySQLベイクオフを実行するという考えを説明しました

チューニングとはどういう意味ですか?

MySQL 5.5では、 より専用の読み取りスレッド、書き込みスレッド、および全体的なI/O容量を利用するための新しいInnoDBオプションがあります 。これにより、マルチコアサーバーでより多くのCPUを使用できます。 未構成のまま、MySQL 5.5は、ほとんどの場合、古いものと同じレベルの競技場で動作しますMySQLのバージョン。場合によっては、パフォーマンスが低下する可能性があります。

次の点を考慮してください。

  • ごみ入れ、ごみ出し
  • あなたはあなたが支払うものを手に入れます
  • 2つの言葉:デューデリジェンス

結論:目的のパフォーマンス向上のために、MySQL 5.5とPercona Serverを構成する必要があります。

これを覚えておいてください

ランボルギーニとは何ですか?

8
RolandoMySQLDBA

あなたが見ている問題は、何十もの異なる根本原因によって引き起こされる可能性があります。絶対に推測しないでください。あなたは確かに注意深く測定し、診断する必要があります。十分な情報を収集すれば、真の原因が明らかになり、解決策は明白になります(何を見ているかを知るためにサーバーの内部についても十分に理解している場合)。サーバーの再構成などを推測して実行しようとすると、私の経験では、問題をさらに悪化させたり、他の問題を引き起こしたりする可能性があり、特定の変更が役に立ったかどうかは本当にわかりません。

Percona Toolkitのpt-stalkツールを使用して、サーバーから一連の診断データを取得することをお勧めします。これは、速度の急上昇の1つが発生したときにサーバーから取得し、より速く実行されているときに同じことを行います。何が起こっているのかを理解するのに十分な情報がそこにあるはずです。それから診断を行うことに抵抗がある場合は、pt-stalkからサンプルをtarballして送信すれば、有能なMySQLサポートプロバイダーは問題ありません。

繰り返しすぎたり、しつこく言ったりするつもりはありませんが、これも試行錯誤しないでください。

1
Baron Schwartz