AUTOCOMMIT=0
で実行している場合、BDB
テーブルでの変更は COMMIT
を実行するまで反映されません。コミットの代わりに
ROLLBACK
を実行すると、変更が無効になります。 See
項6.7.1. 「START
TRANSACTION
、COMMIT
、ROLLBACK
の各構文」。
AUTOCOMMIT=1
(デフォルト)で実行している場合は、変更が直ちにコミットされます。SQL
コマンド BEGIN WORK
で拡張トランザクションを開始できます。その場合、COMMIT
を実行するまで(または変更の
ROLLBACK
を実行するまで)変更がコミットされません。
次に示す mysqld
のオプションを使用すると、BDB
テーブルの動作を変更できます。
オプション | 説明 |
--bdb-home=directory |
BDB
テーブルのベースディレクトリ。--datadir
に使用するディレクトリと同じでなければならない。 |
--bdb-lock-detect=# |
Berkely
のロック検出。DEFAULT 、OLDEST 、RANDOM 、または
YOUNGEST のいずれか。 |
--bdb-logdir=directory |
Berkeley DB のログファイルディレクトリ。 |
--bdb-no-sync |
ログを同期的にフラッシュしない。 |
--bdb-no-recover |
Berkeley DB をリカバリモードで起動しない。 |
--bdb-shared-data |
Berkeley DB をマルチプロセスモードで起動する(Berkeley
DB を初期化する際に
DB_PRIVATE を使用しない)。 |
--bdb-tmpdir=directory |
Berkeley DB のテンポラリファイルディレクトリ。 |
--skip-bdb |
BDB テーブルの使用を無効にする。 |
-O bdb_max_lock=1000 |
ロックの数の上限を設定する。 See
項4.6.8.4. 「SHOW VARIABLES 」。 |
--skip-bdb
を使用すると、MySQL は
Berkeley DB
ライブラリを初期化しなくなるため、大量のメモリを節約できます。このオプションを使用しているときは
BDB
テーブルを使用できません。BDB
テーブルを作成しようとすると、代わりに
MyISAM
テーブルが作成されます。
BDB
テーブルを使用する予定であれば、通常は
--bdb-no-recover
を指定せずに
mysqld
を起動する必要があります。ただし、BDB
ログファイルが破損している場合に
mysqld
を起動しようとすると、問題が発生する可能性があります。
See 項2.4.2. 「MySQL サーバの起動に関する問題」。
bdb_max_lock
では、BDB
テーブルでアクティブにできるロックの最大数(デフォルトは
10,000)を指定できます。長いトランザクションを実行しているときや、mysqld
がクエリの計算で大量のレコードを調べているときに、bdb:
Lock table is out of available locks
または
Got error 12 from ...
というエラーが発生する場合は、この数値を大きくしてください。
また、大規模なトランザクションを使用する場合は、binlog_cache_size
および max_binlog_cache_size
を変更することもできます。 See
項6.7.1. 「START
TRANSACTION
、COMMIT
、ROLLBACK
の各構文」。
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.