Linux
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
是否每晚添加 10GB mysql 數據庫轉儲的快速幫助?
我還補充說
myisam_repair_threads=4
,這有助於修復損壞的表問題,有時似乎轉儲大型數據庫會導致損壞
這裡是quick的官方解釋:
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 會導致損壞,我會調查可能導致這種情況的其他來源。