2012-04-12 3 views
6

Я вставляю в простую маленькую таблицу с 5 атрибутами и 1000 строк.Mysql: Вставка производительности INNODB против MYISAM

Я наблюдал, когда двигатель INNODB, каждая вставка занимает 0,03-0,05 секунды. Я сменил двигатель на MYISAM, затем вставки быстрее. он принимает 0,001 - 0,003.

В чем проблема. innodb_flush_log_trx_commit = 1 по умолчанию. Я был таким, как есть. Вот мои настройки презерватива.

innodb_log_buffer_size : 1MB 
innodb_log_file_size : 5MB 
innodb_buffer_pool_size: 8MB 
innodb_flush_log_trx_commit = 1 

Я не мог понять, что пошло не так. Спасибо заранее. С уважением, UDAY

+0

Вы должны попробовать разместить это на http://dba.stackexchange.com/ или http://serverfault.com –

+0

благодаря микрофону. Я сделал это. – Uday

+0

Без проблем мужчина, удачи. –

ответ

3

innodb_flush_log_at_trx_commit = 1 означает, что каждая транзакция записывается в буфер журнала.

Установите его в 0, чтобы получить лучшую производительность, или даже лучше попробовать делать все вставки в течение одной транзакции (не забывайте комментировать в конце).

Вы можете посмотреть на http://dev.mysql.com/doc/refman/4.1/en/innodb-parameters.html для получения более подробной информации о innodb_flush_log_at_trx_commit и других переменных

+0

Hi Argeman, Здесь меня беспокоит, почему с этой переменной, установленной в 1, она показывает очень очень низкий уровень, который помещается как 120K вставки в час. Удерживая сторону, изменив это значение на 2, что может быть причиной этой худшей производительности с этим значением, установленным в 1. – Uday

+0

Причина в том, что каждая транзакция записывается в буфер журнала. Если теперь вы вставляете без ручного ввода их в одну транзакцию, каждая из них выполняется как транзакция, в результате чего записывается на диск. Запись на диск занимает около 10-50 мс на обычном вращающемся диске ... Возможно, было бы лучше, если бы у вас был кеш с резервной батареей на RAID-контроллере или SSD, но – Argeman

+0

Действительно ли это означает, что однопользовательская транзакция на коммодити 10 - 50 миллисекунд. Я так не думаю. Никто не может этого принять. У меня эта производительность не на всех серверах только на нескольких серверах. – Uday

Смежные вопросы