Почему мы не должны иметь общий размер innodb_log_files больше, чем размер innodb_buffer_pool
Ниже мое понимание о группе файлов журнала.
Всякий раз, когда таблицы innodb были вставлены / обновлены, они будут записаны в innodb_log_buffer_size. Если innodb_log_buffer_size заполнен или пришло время сбросить его на диск, они будут записаны в innodb_log_files, которые поддерживаются в группе и фиксируются в табличном пространстве одновременно.
Теперь мой вопрос заключается в том, почему мы не должны иметь общий размер innodb_log_files больше, чем размер innodb_buffer_pool, и почему мы должны записывать в эти файлы журнала, хотя мы сбрасываем его на диск...?
Я не мог получить правильное объяснение по этому поводу через Интернет, по крайней мере, я не мог понять. Пожалуйста, дайте мне лучшее объяснение.
Действительно заранее спасибо. С уважением, UDAY
1 ответ
Now my question is that why we should not have the collective size of innodb_log_files more than the size of the innodb_buffer_pool and why should we write to these log files though we are flushing it to the disc...?
-> Я не уверен, где это упоминается, как innodb_buffer_pool_size
всегда должно быть больше, чем это значение innodb_log_files_in_group
* innodb_log_file_size
, Конечно! рекомендуемый размер для innodb_buffer_pool_size
должно быть 70-80% доступной памяти для установок только для Innodb, должно быть больше, чем значение по умолчанию, которое составляет 8 МБ.
innodb_log_buffer_size
большой буфер журналов позволяет выполнять большие транзакции без необходимости записи журнала на диск до фиксации транзакций. Таким образом, если у вас большие транзакции, увеличение размера буфера журнала экономит дисковый ввод-вывод.
innodb_log_file_size
Чем больше значение, тем меньше действий по очистке контрольных точек требуется в пуле буферов, что экономит дисковый ввод-вывод. Но большие файлы журнала также означают, что восстановление происходит медленнее в случае сбоя. Вы должны смотреть Innodb_os_log_written
переменной в течение нескольких минут и оцените, сколько байтов в секунду записывается в журналы транзакций InnoDB. Вы можете умножить это значение на 3600 (час) и разделить на innodb_log_files_in_group
выбрать хороший размер файла журнала.
innodb_log_buffer_size
использует внутренне для входа в эти файлы журнала, чтобы сохранить Disc I/O.