MySQL

2008年07月19日

High Performance MySQL

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

High Performance MySQL
High Performance MySQL
posted with amazlet at 08.07.19
Baron Schwartz Peter Zaitsev Vadim Tkachenko Jeremy D. Zawodny Arjen Lentz
Oreilly & Associates Inc
売り上げランキング: 3436

Amazonさんから届いた。
  • MySQL 5.1対応
  • ページ数は初版の2倍強
  • 管理者だけでなく開発者向けの内容
斜め読みしただけでも充実した内容である事が分かる。
この本でしばらく楽しめそうだ。

この夏、オススメの1冊。


半袖 at 16:10|PermalinkComments(2)TrackBack(0)

2008年06月12日

my.cnfの優先順位

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

読み込まれる順番


忘れてたのでメモ
  1. /etc/my.cnf
  2. DATADIR/my.cnf
  3. ~/.my.cnf
ここに該当しないmy.cnfを読み込んでいるサーバがある。
接続して各種確認出来ない状態…。
psコマンドの実行結果があるだけでも大分違う。
さて困ったぞ。



現場で使える MySQL (DB Magazine SELECTION)
松信 嘉範
翔泳社
売り上げランキング: 32833


半袖 at 13:55|PermalinkComments(2)TrackBack(0)

2008年05月23日

低パフォーマンスMySQLの原因は「sync_binlog = 1」

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

レプリケーション・マスターの書き込みが遅過ぎる


IOに問題があるのかどうかを切り分ける為にbonnie++で性能評価してみた。
これと言って問題の無い数値が出て来た。



MySQLの設定に問題があるに違いない


my.cnfのパラメタを色々見比べてみた。
その中に気になるパラメタがあった。

sync_binlog = 1

試しにコメントアウトしてみたら速くなった…。
135倍速かった。

しかし、、、
条件が変わってしまうので設定は元のまま。
そのまま性能評価項目を埋めないと行けない。

時間だけが過ぎて行く。



実践ハイパフォーマンスMySQL
ジェレミ・D. ザウドニ デレク・J. ベリング
オライリージャパン
売り上げランキング: 138677


半袖 at 01:50|PermalinkComments(0)TrackBack(0)

2008年05月13日

[MySQL] 特定データベース、特定テーブルを指定したレプリケーション設定

livedoorClipに登録 livedoorClipに登録 | このエントリーをはてなブックマークに追加 | del.icio.usに登録 | MM/Memoに登録

特定情報に特化したスレーブ


理由は色々あるだろう。
  • 全テーブルをレプリケーション対象にしたくない
  • 全テーブルだとI/O負荷が高いので、過負荷テーブル別にスレーブを分散したい

slave側のmy.cnf変更


[mysqld]セクションに設定追加。
テーブルが複数ある場合は、テーブル数分の設定が必要。
slave$ sudo vi /etc/my.cnf

[mysqld]
replicate-do-table=dbname.table0
replicate-do-table=dbname.table1
replicate-do-table=dbname.table2
....
設定反映
slave$ sudo /etc/init.d/mysql restart



検証


slaveでtable0の存在を確認できれば成功
  1. masterにtable0が無い事を確認
  2. slaveにtable0が無い事を確認
  3. masterでtable0を作る
  4. slaveでtable0が作成されている事を確認
slaveでignore0が存在しない事を確認出来れば成功。
  1. masterにignore0が無い事を確認
  2. slaveにignore0が無い事を確認
  3. masterでignore0を作る
  4. slaveでignore0が作成されてない事を確認
念のためtable1とignore1も検証。
複数テーブルを指定しても意図した動作になった。


半袖 at 16:55|PermalinkComments(1)TrackBack(0)