MySQL修改配置优化插入性能

1.将innodb_flush_log_at_trx_commit配置为0。插入速度会有很大提高。

0:log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行。该模式下在事务提交的时候,不会主动触发写入磁盘的操作。
优缺点:该模式速度最快,但不太安全,mysqld进程的崩溃会导致上一秒钟所有事务数据的丢失。

1:每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去,该模式为系统默认。
优缺点:该模式是最安全的,但也是最慢的一种方式。在mysqld 服务崩溃或者服务器主机crash的情况下,binary log 只有可能丢失最多一个语句或者一个事务。

2:每次事务提交时MySQL都会把log buffer的数据写入log file,但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。
优缺点:该模式速度较快,也比0安全,只有在操作系统崩溃或者系统断电的情况下,上一秒钟所有事务数据才可能丢失。

2.将innodb_autoextend_increment配置由默认8M调整为128M。该项为数据库的表空间耗尽时自动扩展的大小。

3.将Innodb_log_buffer_size配置由默认1M调整到16M。增大日志缓存,减少写数据文件次数。

4.将innodb_log_file_size配置由默认8M调整128M。设定undo日志大小,减少数据库checkpoint操作。

5.将max_allowed_packet配置由默认4M调整为16M。该项为服务器发送和接受的最大包长度,如果一次过插入的数据量大于该值会被拒绝,报错信息为“Packet for query is too large”。

 

posted @ 2020-10-17 23:41  Clotho_Lee  阅读(321)  评论(0编辑  收藏  举报