スポンサーリンク

ステートメントベースレプリケーションが使えないケース

すべての UPDATE (アップデート) ステートメントがレプリケーションすることができるわけではありません。
非決定な振る舞いを(たとえば、SQLステートメントでランダム関数を利用するときです)するときに、ステートメントベースレプリケーションを使ってレプリケーションすることは困難です。非決定なユーザ定義関数(UDF: user-defined function)を使うステートメントは、ステートメントベースレプリケーションを使ってレプリケーションすることは不可能です。このような場合には、ユーザ定義関数(UDF)によって返される結果を行ベースレプリケーションでレプリケーションしましょう。

下記の関数を使うステートメントは、レプリケーションすることができません。
  • LOAD_FILE()
  • UUID(), UUID_SHORT()
  • USER()
  • FOUND_ROWS()
  • SYSDATE()
これ以外のすべての関数は正しくレプリケーションされます( RAND(), NOW(), LOAD DATA INFILEを含みます)。

INSERT ... SELECTは、行ベースレプリケーションのときよりも、たくさんの行レベルロックを必要とします。

テーブルスキャン(WHERE句でインデックスが使われない場合)が必要なUPDATE ステートメントは、行ベースレプリケーションよりもたくさんロックしなければなりません。

InnoDBにおいて、 AUTO_INCREMENT を使う INSERT ステートメントは、 他の INSERT ステートメントと衝突しないためにブロックします。

complex queries
複合クエリは、行がアップデートや挿入される前に、スレーブでステートメントが評価や実行されなければなりません。行ベースレプリケーションでは、スレーブでは、変更を適用するステートメントのみが実行され、完全なクエリではありません。

組み込み関数(stored function: ストアドファンクション)(ストアドプロシージャではありません)は、同じNOW()値として実行されるでしょう。

MySQL関連記事
[2008-08-04-1] MySQL 行ベースバイナリロギング Row-based binary logging
[2008-08-03-2] MySQL 5.1に追加された新機能
[2008-08-03-1] MySQL テーブルにカラムを追加する方法
[2008-08-02-2] Windowsでコマンドでmysqldの起動・停止する方法
[2008-08-02-1] WindowsでApacheとPHPとMySQLを動かす
[2008-08-01-2] MySQL データベースからデータベースとテーブルを作成する文を方法
[2008-08-01-1] MySQL テーブルのcreate文をテーブルから生成する方法
[2008-07-27-2] MySQLのデータファイルを移動する方法
[2008-07-27-1] MySQLのエラー MySQL General error 1114 The table foo is full
[2008-07-22-2] 気付けばレプリケーションが止まっていたMySQL

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー