7.6. Таблицы BDB или BerkeleyDB
7.6.3. Параметры запуска BDB
Если запуск производился с параметром AUTOCOMMIT=0, то изменения, сделанные в в таблицах BDB, не вносятся, пока не будет выполнена команда COMMIT. Кроме операции фиксации, можно запустить команду ROLLBACK, чтобы отменить изменения (see Раздел 6.7.1, «Синтаксис команд BEGIN/COMMIT/ROLLBACK»).
Если вы работаете с параметром AUTOCOMMIT=1 (значение по умолчанию), внесенные изменения будут фиксироваться немедленно. Можно выполнить расширенную транзакцию при помощи команды SQL BEGIN WORK, после которой изменения не будут зафиксированы до запуска команды COMMIT (или будут отменены при помощи команды ROLLBACK).
Чтобы изменить параметры таблиц BDB, можно воспользоваться следующими опциями mysqld:
Параметр
Описание
--bdb-home=directory
Базовый каталог для таблиц BDB. Это должен быть тот же каталог, что и для --datadir.
--bdb-lock-detect=#
Обнаружение блокировки Berkeley; одно из значений: 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)
Если используется параметр --skip-bdb, MySQL не будет инициализировать библиотеку Berkeley DB, что позволит сэкономить большое количество памяти. Разумеется, после включения этого параметра нельзя пользоваться таблицами BDB. если вы попытаетесь создать таблицу BDB, то в этом случае MySQL будет создавать таблицу MyISAM.
Обычно если предполагается использовать таблицы BDB, следует запускать mysqld без параметра --bdb-no-recover. Однако если файлы журналов BDB повреждены, то при попытке запуска mysqld могут возникнуть проблемы (see Раздел 2.4.2, «Проблемы при запуске сервера MySQL»).
При помощи параметра bdb_max_lock задается максимальное количество блокировок (10000 по умолчанию), которые могут быть установлены на таблицу BDB. Это значение необходимо увеличить, если возникают ошибки bdb: Lock table is out of available locks или Got error 12 from ... при проведении длинных транзакций или когда mysqld должен просмотреть много строк, чтобы произвести необходимые вычисления для запроса.