热门推荐
大数据量情况程序处理技巧
2024-11-10 18:19

批量更新:

大数据量情况程序处理技巧

PreparedStatement并不能减少sql的执行数目. 参数传入多少次,就会执行多少条sql.

在一个事务中,由于Statement与PrestatedStatement都使用的同一个连接. Statement不会再象过去每次都去获取连接. 这种情况下,反而可以利用Statement优化PreparedStatement. 减少sql的执行条数. 但是每条sql会编译,获得执行计划.

示例1:质量度更新:

比如关键词在审核的过程中先去查询A表,得到该词的历史质量度, 如果有,就更新B表中的质量度值.

调优后的方法:

上面调优之后,由以前的kslist条sql变成了现在的5条sql,但是这5条sql都会重新编译.

经测试:10个Key感觉差别不是特别明显. 都在16ms. 结论待定.

示例2: 在广告系统中配对的批量插入与批量更新的一个优化示例:

批量广告插入最初使用的是merge into.但是即使使用的PreparedStatement的sql,仍然要执行25W次.

比如应用程序中形成的了一个配对的集合,包含了25W个元素.通过jdbcTemplate的batchUpdate批量插入这些元素,并且还需要判重,使用的sql如下:

为了在同时使用PreparedStatement的时候,将这25W条sql降下来,重构应用程序如下:在应用程序中形成ideaid-keylist的集合,针对每个idea对应的key做下面的操作,执行sql数目=idea的数目.

大数据量查询的二种方式:

1. 一种全部查询到内存,然后使用subList, subList的场景比如in参数的限制.

    以上就是本篇文章【大数据量情况程序处理技巧】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/quote/64292.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 物流园资讯移动站 http://mip.xhstdz.com/ , 查看更多   
发表评论
0评