您的位置:首页 > 其它

百万级数据计算性能调优经验分享

2013-04-21 21:01 197 查看
最近本人在主持开发一个项目,客户方对数据计算的性能要求特别高,百万级复杂的计算时间不能超过30分钟。

优化的过程是艰难的,本人负责开发这个功能,这个功能是整个项目的核心功能。数据计算的准确性与高效性要求特别高。

在开发这个功能的过程我的思路是先保证准确性再求高效性。

在求的准确性前提下,去追求高效性。

追求高效性的过程,进行了两种方案:

1.采用java语言直接调用SQL

2.将整个算法封装成一个存储过程。

对两种方案进行了比较。

在索引没有发挥效果的时候,测试报告的结果是一样的,是低效的用户不能接受。

接下来运行数据库索引技术,对计算过程中用到的查询的表设置常用的字段索引,并优化SQL语句,确保

索引有效。最后测试的结果是令人满意的,性能提高了8倍左右。但是还是离用户的要求还是有些距离。

最后对程序的整个算法进行了优化,采用了缓存与分批处理的方法,最后达到了用户的要求,处理时间在10分钟以内。

在这个优化过程中,我总结了以下几条优先级的调优原则:

第一步.先调索引,确保索引启用。

第二步。优化算法,采用缓存机制,分批处理,减小事务处理的粒度。

在调优的过程中我发现,一次处理百万级的数据的时间是每次处理1000条*1000次的倍数。根据测试结果是3倍左右。所以数据库事务粒度有一个最有性能粒度。

以上经验仅供分享与参考,希望对在这方面有需求的同仁有所帮助。其中的一些细节本人就不赘述了。有兴趣探讨可以+QQ:359092844.+QQ的时候请注明 -百万级数据性能调优
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: