我正在使用 mysqldump 备份innodb数据库。执行备份需要2分钟。 有什么方法可以加快速度吗?
我的机器有120GB的RAM,我希望我的数据库应该适合内存。
硬盘驱动器上的数据库大小约为8 GB:
[user@host:E018 mysql]$ du -hs database
8.3G database
Biggest表有12054861条记录,数据大小为2991587328。
我尝试过使用innodb_buffer_pool_size,但我没有看到性能提升。 如果我第一次运行mysqldump则需要2分7秒。如果我第二次尝试它需要大约2分钟才能减速。
我还试图存档数据以避免大量磁盘写入:
mysqldump database |pigz > database-dmp.sql.gz
对绩效没有影响。
在mysql引擎的不同机器上运行mysqldump不会改变任何东西。 可能mysql不会将数据缓存到内存中,或者它会将数据发送到mysqldump以减慢速度。
以下是我使用的配置:
max_heap_table_size=10G;
innodb_file_per_table=1
innodb_file_format=barracuda
innodb_strict_mode=1
innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_adaptive_hash_index=0
innodb_support_xa=0
innodb_buffer_pool_size=40G
innodb_log_file_size=256M
innodb_log_files_in_group=3
innodb_log_buffer_size=64M
我还可以尝试提高mysqldump的性能吗?