ぶろぐ

日記です

MySQLの負荷対策について調べてみた


まだ、調べている途中なんだけど、出てきた用語をメモる.

一覧

内容

  • 参照系

select文など、DBを見るだけ.DBの人は「参照系」と「更新系」で概念を分けているっぽい.

  • 更新系

Update,Create,Deleteなど、リソースの更新がかかる処理

  • パーティショニング
    • 水平パーティショニング

横のデータでパーティショニング

    • 垂直パーティショニング

縦のデータをパーティショニング

負荷対策の視点としては、参照系のみ有効(同期の遅延が出る恐れあり)
マスター/スレーブ方式のレプリケーションが定石.
更新系の処理をマスターが受け取り、スレーブ側のDBが同期する.
更新系の処理はマスターに集約することになるため、参照系の負荷対策にはならない.

memcachedをキャッシュサーバーとしてMySQLの間に挟む.メモリ上にデータがキャッシュされるので高速らしい.
別サーバー上で立てて、キャッシュゾーンとして使うのがよさそう.
よく落ちるらしく、重要なデータは置けない.デーモンツールで落ちたら再起動.
memcached座談会:第1回 座談会メンバーの自己紹介,座談会の経緯と目的|gihyo.jp … 技術評論社
http://gihyo.jp/dev/serial/01/memcached-talk/0001

memcached並みの速度で、RAMメモリ上ではなくファイルに保存する.
速いし、落ちてもデータが失われないのがいいところ.
いちょ、あんまり使う場面はないかも?
mixi Engineers' Blog ≫ Tokyo Tyrantによる耐高負荷DBの構築
http://alpha.mixi.co.jp/blog/?p=166

参考サイト

MySQLレプリケーションとパーティショニングの設計例(1) - 憂鬱なプログラマ形而上学
http://d.hatena.ne.jp/k_yamamot/20100822/1282443966

[ThinkIT] 第4回:レプリケーションの比較 (1/4)
http://thinkit.co.jp/free/article/0603/10/4/

MySQLウォッチ]第40回 パーティショニングで高速化し大量データに備える - オープンソース:ITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20080710/310540/?ST=oss&P=1

パーティショニングは大規模DBの性能向上に効く(3/3) − @IT
http://www.atmarkit.co.jp/fdb/rensai/ora_partition01/ora_partition01_03.html

ricollab Web Tech Blog ≫ Blog Archive ≫ MySQLパーティショニングについて(その1:基本知識編)
http://blogs.ricollab.jp/webtech/2009/10/mysql_partitioning_1/