优化MySQL插入数据

 

优化MySQL插入数据

表结构:6个字段,2个数值型,4个字符串型,字符型字段长度3~20个字符

数据量:1000条

MySQL版本:4.1

测试程序与MySQL服务器在同一台机器,单线程插入处理。

 

优化方法1

修改表的类型

       MySQL数据库表有两种类型,一种是支持事务处理,一种是不支持事务处理。MySQL在处理这两种表时,分别使用了不同类型的数据库引擎,因此数据库引擎在插入时效率不同,理论上说启用了事务功能后会比较慢。

修改方法:在创建表时,指定表类型

Create Table(

….. /*字段说明*/

) ENGINE=InnoDB

红色部分为表类型,InnoDB表示带事务,MyISAM表示不带事务功能

 

 

优化方法2

一次插入多条数据

       MySQL通过一次执行插入多条数据,可以减少插入时间,提高效率,不过一次插入多条记录的SQL语法有点特别,貌似MS SQL Server不支持这样的语法:

Insert into `table` values(data1),(data2),(data3)

       虽然可以将多次插入的数据一次插入,但是一次插入的量还是有限制的:拼接出的SQL语句字符串长度不能超过1M,记录数不限。不太清楚是MySQL限制还是MySQL.Data数据库访问组件的限制造成的。

 

测试结果:

 

 

带事务

不带事务

执行1000次一次插1条记录

18s

430ms

执行1次一次插1000条记录

100ms

60ms

 

 

 

 

 

 

转载于:https://www.cnblogs.com/yahle/archive/2007/08/08/848060.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值