MySQL

MySQL でテーブルをロックせずに index を貼る方法いろいろ

indexを張った場合の処理の基本的な流れ ALTER TABLE でindexを追加すると、indexを貼り終わるまでテーブルがロックされる 内部的には テーブルをロック→テーブルをコピー→コピーしたテーブルにindexを貼る→元のテーブルと入れ替える→ロック解除 という処理…

InnoDBのバッフアプールとMyISAMのキーバッファについて

概要 InnoDBとMyISAMの違いについて解説 その上で、それぞれのキャッシュの取り扱いと、キャッシュに関する値の最適化について解説 そもそも、InnoDBとMyISAMの違い どちらも ストレージエンジン MySQLは、リクエストから以下のような流れで、データのread/w…

MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしないよというお話

先に結論 MHA for MySQLのデフォルトのヘルスチェックでは、DBの書き込み障害ではフェイルオーバーしない なんで? MHAはヘルスチェックをバラメータ ping_type で設定された方法で行う ping_type のデフォルトは SELECT ping_type : SELECT の場合、ヘルスチ…

スレーブのレプリケーションが遅延している時に SHOW SLAVE STATUS でチェックするべき値

前提知識 MySQLのスレーブでは、以下の2つのスレッドを使って、レプリケーションを行っている I/Oスレッド : マスタからバイナリログの差分を取得する SQLスレッド : IOスレッドから取得したバイナリログを元にDBを更新する SHOW SLAVE STATUS で見るべき値 …

MySQLのバイナリログについて解説

バイナリログとは マスタのDBの 更新命令のみ を記録したログファイル マスタ/スレーブ間の同期(レプリケーション)で使用する my.cnf に log-bin オプションを設定すると、バイナリログが作成されるようになる バイナリログの保存形式 STATEMENT, ROW, MIXED…