Использование MySQL InnoDb для блокировки на уровне строк, но не заботится о накладных расходах транзакций - PullRequest
2 голосов
/ 21 декабря 2011

У меня очень высокий уровень вставок / обновлений против чтения, скажем, 99% пишет против 1% чтения.База данных предназначена для регистрации большого количества аналитических данных, которые поступают быстро.

Я переключился на innodb, чтобы избежать блокировки на уровне таблицы, что приятно, но я бы хотел избавиться от накладных расходов на транзакции, которые идут с innodb.Есть ли способ просто отключить все сбрасывания / фиксации / транзакции для innodb, если я просто беспокоюсь о скорости и не возражаю потерять несколько строк в случае сбоя?

1 Ответ

0 голосов
/ 24 декабря 2011

Измените my.conf и установите innodb_flush_log_at_trx_commit=0. Таким образом, вы не будете просить MySQL сбрасывать ваши данные в файловую систему каждый раз, когда вы делаете коммит. Но при сбое системы вы потеряете некоторые данные.

Вы можете сделать это лучше, так как большинство ваших операций пишется. Вы можете объединить несколько SQL в один SQL. Затем отправьте его в MySQL.

...