MySQLの負荷対策について調べてみた
まだ、調べている途中なんだけど、出てきた用語をメモる.
一覧
- 参照系
- 更新系
- パーティショニング
- 水平パーティショニング
- 垂直パーティショニング
- レプリケーション
- memcached
- tokyo tyrant
内容
- 参照系
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/
参考になりそうな書籍
なんてったってオライリー!
実践ハイパフォーマンスMySQL 第2版
http://www.amazon.co.jp/gp/product/4873114268?ie=UTF8&tag=gandhixx-22&link_code=as3&camp=767&creative=3999&creativeASIN=4873114268
漢(オトコ)のコンピュータ道の人の書籍、レビューがやばい.買いそう.
エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド
http://www.amazon.co.jp/%E3%82%A8%E3%82%AD%E3%82%B9%E3%83%91%E3%83%BC%E3%83%88%E3%81%AE%E3%81%9F%E3%82%81%E3%81%AEMySQL-%E9%81%8B%E7%94%A8-%E7%AE%A1%E7%90%86-%E3%83%88%E3%83%A9%E3%83%96%E3%83%AB%E3%82%B7%E3%83%A5%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%AC%E3%82%A4%E3%83%89-%E5%A5%A5%E9%87%8E/dp/4774142948/ref=pd_sim_b_1