MySQL插入效率改进
来源:互联网 发布:河北移动网络助手 编辑:程序博客网 时间:2024/05/16 12:08
MySQL表在批量插入大量数据时,会出现插入速度越来越慢的现象:实际使用时,10列的表,前100W条速度比较快,到了200W条时速度已经慢了十几倍不止,已经到了无法忍受的程度,遇到这种现象时可以使用下面方法改进速度:
1、单条insert into语句中包含更多条数据
insert into table_xxx values(1,2,3,4)
改为使用多条
insert into table_xxx values(1,2,3,4),(5,6,7,8),(9,10,11,12)
这样做的确能加快不少速度,但是实际测试结果发现,这样只是前期速度较快,延后了速度变到极慢的时间。需要注意max_allowed_packet变量的设置,该变量表示单条SQL的最大长度。
2、控制commit频率
在mysql中运行 : “show variables like '%commit%';”,autocommit=ON表示每次insert请求MySQL都会commit一次,设为OFF后,由程序在插入批量数据之后再统一进行COMMIT会比较快。PS:实际使用时发现插入特别多数据都不进行COMMIT也可能导致速度过慢- -(有待观察)
另外改变innodb_flush_log_at_trx_commit在使用innodb的时候也可以提高效率,该值影响到MySQL向硬盘Flush日志的频率,设为0会降低安全性但提高效率。
3、插入有序数据,降低更新索引时间
据说有序(从小到大)地插入批量数据会让索引类型为B-TREE的表索引更新速度更快,但未试验过- -
另外,增大innodb_buffer_pool_size可以让使用innodb的表索引更新更快。
4、别用innodb,换用MyISAM
前者的安全性较高,支持事务、外键,速度较慢,后者恰恰相反。测试效果很好,基本上不存在插入速度递减的现象!
0 0
- MySQL插入效率改进
- mysql 插入效率问题
- Mysql插入效率比较
- mysql 临时表 效率问题改进
- 提高mysql的插入效率
- mysql提高数据插入效率
- 提高MySql插入执行效率
- 数据插入 效率比较 mysql
- mysql 数据批量插入效率
- 如何提升MySQL批量插入的效率
- 如何提升MySQL批量插入的效率
- 如何提升MySQL批量插入的效率
- mysql大数据插入效率对比
- 如何提升MySQL批量插入的效率
- MySql批量插入优化Sql执行效率
- mysql临时表产生的执行效率问题改进
- mysql 批量插入与单条插入 的效率比较
- mysql 插入更新多条数据的效率问题
- Gas Station
- 汉诺塔 搬盘子 过程
- 【CODEFORCES】 A. Keyboard
- respondsToSelector的相关使用
- SSH远程登录和SCP拷贝
- MySQL插入效率改进
- 左边部分添加到右边
- 关于Div的宽度与高度的100%设定
- Linux/UNIX下 ssh-keygen 设置SSH无密码登录
- A017 物料价格
- 使用GSON解析json
- Ubuntu新增用户
- 编译protobuf文件
- mysql中表名为关键字的处理方法