2009年06月19日

MySQL5.4.0にして、劇的にパフォーマンスUP←イマココこのエントリーをはてなブックマークに追加

フォートラベルでは、データベースにMySQLを20台ほど使っています。

・ユーザさんが投稿したテキスト
・クリックなど大量のログ
・広告表示のインプレッションログ
・宿泊予約サイトの比較用の大量のデータ
それ以外にも沢山。書き出すと、きりがないくらいたくさんの
いろんなデータが蓄積されています。

新機能の開発だけではなく、より表示速度を上げるためや、大量のデータを処理する為に、
日々SQLや、PHPの処理の改善、テーブル構造の検討、サーバの設定変更、ネットワーク、サーバ構成を考え直したりもしています。

時には、RCや、betaのバージョンのMySQLをいれることも。
今回、数千万件のデータを処理するMySQLが一台いるのですが、
さすがに毎日毎日大量のデータを処理しているため、
こういうのはプログラムのチューニングをするのがなかなか不安たっぷりです。

MySQL5.4での目玉は、
・パーティショニング(5.1からありましたが)
・マルチコアのCPU効率アップ
・joinのパフォーマンスアップ

書き出すときりがないくらい気になる項目ばかりです。
パーティショニングは、導入して1年半になりますが、
使い方次第ではめっちゃくちゃすごいです。
5000万件のtableのselectに2分かかってた処理が0.05秒くらいになったりとか、パーティショニングしだいでガッツポーズが出るくらいの効果がありました。

今回MySQL5.4.0で、自社のベンチマークでかなりいい感じだったので、
一番データ量の多い、サーバにいれてみました。
で、これが導入前後のCPU使用率。

cacti処理は全くかえていません。
無事流れていたSQLも修正なしに動きました。
CPUの使い方が半分くらいになりました。
これはやばいです。

さあ、4.x、5.0、5.1の皆さん、5.4の世界へ!!

ただし、バージョンアップは計画的に。。
バックアップ取ってね。

PS
innodbつかってるひとは気をつけて。。
この話は後日。

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/nyamaji/51841362