Назад | Перейти на главную страницу

Настройка MySQL для повышения производительности

[mysqld]
myisam_repair_threads=4
key_buffer = 64M
myisam_sort_buffer_size = 32M
join_buffer_size = 2M
read_buffer_size = 2M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
table_cache = 1024
thread_cache_size = 16K
wait_timeout = 20
connect_timeout = 10
tmp_table_size = 128M
max_heap_table_size = 128M
max_allowed_packet = 160M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1


[mysqld_safe]
open_files_limit = 8192

[mysqldump]
quick
max_allowed_packet = 512M

[myisamchk]
key_buffer = 64M
sort_buffer = 64M
read_buffer = 16M
write_buffer = 16M

Добавляет ли каждую ночь быструю помощь с 10 ГБ дампа базы данных mysql?

Я также добавил myisam_repair_threads=4 может ли это помочь исправить проблемы с поврежденными таблицами? Иногда кажется, что сброс больших баз данных вызывает повреждения

Добавляет ли каждую ночь быструю помощь с 10 ГБ дампа базы данных mysql?

Да, скорее всего. Вероятно, это резко сократит использование оперативной памяти.

Вот официальное объяснение быстрого:

This option is useful for dumping large tables. It forces mysqldump to 
retrieve rows for a table from the server a row at a time rather than 
retrieving the entire row set and buffering it in memory before writing it out.

Так что для больших таблиц это поможет, если вы не можете уместить таблицу в память.

Но здесь важно отметить, что если вы используете MyISAM, он блокирует таблицу каждый раз, когда читает строку (он также блокирует ее при сбросе набора строк). InnoDB использует блокировку на уровне строк вместо блокировки на уровне таблицы, поэтому резервное копирование будет намного проще. Если у вас большая таблица, вероятно, следует использовать InnoDB, а не MyISAM. Это будет иметь большое значение при резервном копировании.

Я удивлен, что использование mysqldump вызывает повреждения, я бы посмотрел на другие источники, которые могут вызывать это.