Mysql Innodb插入性能优化手记
2011-03-19 21:17
369 查看
今天优化数据库性能做了一天,最终效果还是非常满意的,插入数据从开始不到2000rec/s,最后达到3300rec/s。中间过程测试代码出了些问题,有些细节上的参数效果都没体现出来,但是最终结果速度明显提升应该是两个方面起的作用。
首先,我安装了innodb_plugin_1.0.15来代替了buildin innodb版本,这个性能上的直接变化我到时没注意,我主要是为了plugin版本有更多可以调整的参数。但是很多参数反复调整性能变化都不大,包括读写线程数、日志参数、文件系统等等。但是主要能有显著性能提升的是innodb_flush_log_at_trx_commit=0和innodb_buffer_pool_size=2G。前面的日志刷新参数就不说了,后面缓冲池的参数在看show engine innodb status \G中发现Free buffers 为0,说明缓冲池仍然不够大,看到一份测试报告是说在8G缓冲池的情况下性能提升才比较明显。这个时候插入速度已经到了2500rec/s。
数据库本身的优化再继续做可能也没太大提升了,就想到从插入动作入手。本来已经是用ibatis提供的批量插入,后来上网查了一下资料,惊讶的发现居然在最新的jdbc里面提供了支持批量的连接。直接到mysql官方网站下载了一个5.1.15的jdbc,只要在数据库连接上添加rewriteBatchedStatements=true就可以了。重新启动程序,发现现在每次的插入量真的是300rec一次了,而之前实际插入感觉还是一条条的,用show processlist看到的执行语句都是单条的。结果再测一下发现已经达到了3300rec/s。
上面的测试确实做的很不好,主要是自己对数据库并不熟悉,导致整个测试过程也没有很好的规划,更多的时候都是尝试行的在边改边测。应该是先有一个稳定的测试代码或者用专门的数据库性能测试工具,然后每次对一个参数进行调整来对比修改后的效果。下一次要记住这个教训!
首先,我安装了innodb_plugin_1.0.15来代替了buildin innodb版本,这个性能上的直接变化我到时没注意,我主要是为了plugin版本有更多可以调整的参数。但是很多参数反复调整性能变化都不大,包括读写线程数、日志参数、文件系统等等。但是主要能有显著性能提升的是innodb_flush_log_at_trx_commit=0和innodb_buffer_pool_size=2G。前面的日志刷新参数就不说了,后面缓冲池的参数在看show engine innodb status \G中发现Free buffers 为0,说明缓冲池仍然不够大,看到一份测试报告是说在8G缓冲池的情况下性能提升才比较明显。这个时候插入速度已经到了2500rec/s。
数据库本身的优化再继续做可能也没太大提升了,就想到从插入动作入手。本来已经是用ibatis提供的批量插入,后来上网查了一下资料,惊讶的发现居然在最新的jdbc里面提供了支持批量的连接。直接到mysql官方网站下载了一个5.1.15的jdbc,只要在数据库连接上添加rewriteBatchedStatements=true就可以了。重新启动程序,发现现在每次的插入量真的是300rec一次了,而之前实际插入感觉还是一条条的,用show processlist看到的执行语句都是单条的。结果再测一下发现已经达到了3300rec/s。
上面的测试确实做的很不好,主要是自己对数据库并不熟悉,导致整个测试过程也没有很好的规划,更多的时候都是尝试行的在边改边测。应该是先有一个稳定的测试代码或者用专门的数据库性能测试工具,然后每次对一个参数进行调整来对比修改后的效果。下一次要记住这个教训!
相关文章推荐
- MySQL innoDB数据插入性能优化
- MySQL innoDB数据插入性能优化
- MYSQL-innodb性能优化几个点
- mysql 批量插入数据(INNODB)优化
- MYSQL开发性能研究之批量插入数据的优化方法
- MYSQL开发性能研究——批量插入的优化措施
- MySQL插入语句insert性能优化
- Mysql innodb存储引擎的性能优化一
- mysql innodb 性能优化
- MySQL插入性能优化(转)
- Mysql innodb存储引擎的性能优化二
- MySQL实现批量插入以优化性能的教程
- mysql innodb 性能优化
- MySQL实现批量插入以优化性能的教程
- MySQL在插入90万条数据消耗的时间以及查询90万条数据时的性能优化
- mysql innodb 性能优化
- MySQL · 性能优化· 5.7.6 InnoDB page flush 优化
- MySql Innodb引擎 数据表 上万条数据连续插入优化
- 关于mysql上万条数据同时插入时的性能优化
- MYSQL开发性能研究——批量插入的优化措施