PreparedStatement和Statement插入速度比较

因为自己曾写过一个新浪微博爬虫,使用的是Mysql数据库,爬虫经常需要往数据库中一次性存入千条或者万条数据,因此插入速度是一个很关键的点。因此在网上搜了下能够改进批量插入速度的方法,偶然看到可以使用PreparedStatement代替Statement,基本原理就是PreparedStatement可以利用到数据库的预编译功能,当结构相同的sql语句频繁被重复使用时,PreparedStatement可以提高插入效率。我做了一个小实验,就是分别使用它们往数据库中插入大量数据,比较了一下插入速度。

每次插入条数插入次数StatementPreparedStatment
500200.871.22
500505.172.56
50010021.354.7
1000203.282.12
10005021.224.73
100010090.069.25
上面这个表基本能模拟我的爬虫的行为,我爬取的新浪微博用户微博数通常都在几百到几千条(也有的用户能达到几w条),每次运行能爬几百个用户。以每次1000,存100次为例,使用PreparedStatement至少可以为我节省10倍的插入时间,提高幅度已经不小了。

PS:后来我又做了一个二者的select的速度比较,从一个4400w条的表中,连续取100个用户的100条微博,发现二者速度都在30秒左右。可见至少在我的应用情况下,PreparedStatement并不能为连续读操作提高速度,但却可以大幅度提高连续写速度。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值