分类目录归档:mysql

MySQL InnoDB 插入数据慢解决办法

在my.ini中设置 innodb_flush_log_at_trx_commit 参数

例如:
innodb_flush_log_at_trx_commit=2

原因:
抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。

参考资料:
http://www.cnblogs.com/whiteyun/archive/2011/12/01/2270132.html
http://stackoverflow.com/questions/9819271/why-is-mysql-innodb-insert-so-slow
https://www.percona.com/blog/2007/11/01/innodb-performance-optimization-basics/