Database JUNKY

MySQL,MariaDBを中心としたブログです

LOAD中のテーブルにアクセスできるようにする方法

例として、以下のような、LOAD文が発行されたとします。

  • load from ./tabschema.tabname.ixf OF IXF MESSAGES ./tabschema.tabname.msg INSERT INTO tabschema.tabname  NONRECOVERABLE 上記の場合のデフォルトのロックモードは、Zロック(超排他)と言われLOAD中の表についてはLOADが終了するまで一切アクセスできなくなります。
  • load from ./tabschema.tabname.ixf OF IXF MESSAGES ./tabschema.tabname.msg INSERT INTO tabschema.tabname  NONRECOVERABLE ALLOW READ ACCESS 上記の場合は、ロードの最中でも、表にアクセスできます。 ALLOW READ ACCESS を指定することによって、ロード開始前に存在していたデータは読み取り可能となります。 ロード中のデータは読み取り不可です。 ただし、これには条件があり、REPLACEモードの場合は、これが適用できないので注意が必要です。

しかし、ロードを使うケースって、REPLACEがほとんどだど思うので、あんましこの恩恵を受けれるケースって少ないかもしれません。