タグ別アーカイブ: memcached

MySQLデータベースの負荷を無くしたい!Key-Valueストア導入


MySQLデータベースの負荷を無くしたい場合、memcachedなどのKey-Valueストアの導入

がおすすめです。

WEBサービスの場合、スタート時には分からなかった利用状況によるサーバー負荷!

利用するユーザーが増えてくるにしたがいサーバー上のボトルネックを調査する作業が

発生してきます。

ハードウェアのスペックが新しいものの場合、CPU、メモリー、ディスクのIOなどは

あまり考えなくていいかと思います。

それより、Apacheのプロセス、MySQLなどのデータベース、WEBアプリケーションを重点的に

調べた方が、改善効果がきたいできます。

まあ、一番はMySQLのクエリー結果を早くすること!だと思います。

1リクエストで何回もSQLが実行されるようなシステムの場合、SQLの実行回数を減らすだけで

改善されます。

では、どのようにSQLの実行回数を最適化するのか?!


①重要度が低いログ系などのSQLを思い切って停止する

②Key-Valueストアにデータの一部を移行させておく

などなど

①については、クライアント様の運用スタイルに制限されてしまい、万が一の時にトラブルを招く恐れがあります。

そう、一番良いのは、Key-Valueストアなどにデータの一部を移行して利用することです。


Key-Valueストアのほとんどはメモリー上で動作するので、速度がリレーショナルデータベースに比べて

格段に高速です。

Key-Valueストアは、いくつも種類がありますが、一番メジャーで導入も簡単なmemcachedがおすすめです。

再起動などデーモンが落ちるとデータはなくなりますが。

最近では再起動してもデータが保存されているタイプが人気があります。


速度的にはリレーショナルデータベースより早くなるので

どのKey-Valueストアを導入するかは、データの扱い易さ、再起動時のデータ有無で判断すると

いいでしょう。

次回は、各Key-Valueストアのベンチマークをしてみたいと思います。