Mysql数据库写入数据速度优化
1)innodb_flush_log_at_trx_commit 默认值为1;设置为0,可以提高写入速度。
值为0:提升写入速度,但是安全方面较差,mysql服务器宕机可能会造成数据丢失。
值为1:每一次事务提交或者事务外的指令都需要把日志写入硬盘,此过程消耗时间较长;
值为2:是每次操作不写入硬盘,而是写入系统缓存,日志仍然会每秒刷新硬盘;
2)innodb_autoextend_increment默认值为8M,调整为128M ;
此配置项作用主要是当tablespace 空间已经满了后,需要MySQL系统需要自动扩展多少空间,每次tablespace 扩展都会让各个SQL 处于等待状态。增加自动扩展Size可以减少tablespace自动扩展次数。
3)innodb_log_buffer_size默认值为1M,调整为16M ;
此配置项作用设定innodb 数据库引擎写日志缓存区;将此缓存段增大可以减少数据库写数据文件次数。
4)innodb_log_file_size默认值为 8M,调整为128M ;
此配置项作用设定innodb 数据库引擎UNDO日志的大小;从而减少数据库checkpoint操作。
5)bulk_insert_buffer_size默认值为8M,调整为100M;
作用于使用 MyISAM存储引擎,用来缓存批量插入数据的时候临时缓存写入数据。
innodb_flush_log_at_trx_commit、innodb_log_buffer_size和
innodb_log_file_size 需要谨慎调整;因为涉及MySQL本身的容灾处理。