百万级数据计算性能调优经验分享
来源:互联网 发布:友情链接源码 编辑:程序博客网 时间:2024/06/04 01:23
最近本人在主持开发一个项目,客户方对数据计算的性能要求特别高,百万级复杂的计算时间不能超过30分钟。
优化的过程是艰难的,本人负责开发这个功能,这个功能是整个项目的核心功能。数据计算的准确性与高效性要求特别高。
在开发这个功能的过程我的思路是先保证准确性再求高效性。
在求的准确性前提下,去追求高效性。
追求高效性的过程,进行了两种方案:
1.采用java语言直接调用SQL
2.将整个算法封装成一个存储过程。
对两种方案进行了比较。
在索引没有发挥效果的时候,测试报告的结果是一样的,是低效的用户不能接受。
接下来运行数据库索引技术,对计算过程中用到的查询的表设置常用的字段索引,并优化SQL语句,确保
索引有效。最后测试的结果是令人满意的,性能提高了8倍左右。但是还是离用户的要求还是有些距离。
最后对程序的整个算法进行了优化,采用了缓存与分批处理的方法,最后达到了用户的要求,处理时间在10分钟以内。
在这个优化过程中,我总结了以下几条优先级的调优原则:
第一步.先调索引,确保索引启用。
第二步。优化算法,采用缓存机制,分批处理,减小事务处理的粒度。
在调优的过程中我发现,一次处理百万级的数据的时间是每次处理1000条*1000次的倍数。根据测试结果是3倍左右。所以数据库事务粒度有一个最有性能粒度。
以上经验仅供分享与参考,希望对在这方面有需求的同仁有所帮助。其中的一些细节本人就不赘述了。有兴趣探讨可以+QQ:359092844.+QQ的时候请注明 -百万级数据性能调优
优化的过程是艰难的,本人负责开发这个功能,这个功能是整个项目的核心功能。数据计算的准确性与高效性要求特别高。
在开发这个功能的过程我的思路是先保证准确性再求高效性。
在求的准确性前提下,去追求高效性。
追求高效性的过程,进行了两种方案:
1.采用java语言直接调用SQL
2.将整个算法封装成一个存储过程。
对两种方案进行了比较。
在索引没有发挥效果的时候,测试报告的结果是一样的,是低效的用户不能接受。
接下来运行数据库索引技术,对计算过程中用到的查询的表设置常用的字段索引,并优化SQL语句,确保
索引有效。最后测试的结果是令人满意的,性能提高了8倍左右。但是还是离用户的要求还是有些距离。
最后对程序的整个算法进行了优化,采用了缓存与分批处理的方法,最后达到了用户的要求,处理时间在10分钟以内。
在这个优化过程中,我总结了以下几条优先级的调优原则:
第一步.先调索引,确保索引启用。
第二步。优化算法,采用缓存机制,分批处理,减小事务处理的粒度。
在调优的过程中我发现,一次处理百万级的数据的时间是每次处理1000条*1000次的倍数。根据测试结果是3倍左右。所以数据库事务粒度有一个最有性能粒度。
以上经验仅供分享与参考,希望对在这方面有需求的同仁有所帮助。其中的一些细节本人就不赘述了。有兴趣探讨可以+QQ:359092844.+QQ的时候请注明 -百万级数据性能调优
- 百万级数据计算性能调优经验分享
- 百万级数据查询
- 百万级数据优化
- Repeater百万级数据分页
- 百万级数据库优化
- 百万级数据查询优化
- 百万级数据查询优化
- 百万级数据查询优化
- 百万级数据查询优化
- 百万级数据查询分页
- 百万级数据查询优化
- Neo4j 百万级数据导入
- 百万级数据读写Excle
- mysql百万级数据优化
- jdbc导入百万级数据
- 百万级数据库优化
- Mysql 百万级数据优化资料
- Mysql 百万级数据优化资料
- hdu3461之并查集
- php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
- 【重点推荐】快速构建优秀网站
- ServletConfig对象
- 群面
- 百万级数据计算性能调优经验分享
- Big Number+模拟数取模
- http协议详解
- cocos2d-x引擎浅析
- Tftp安装使用全接触
- Hibernate Session的save()方法
- Java的内存泄漏
- ListView的一些效果与属性的学习记录
- 利用Github和Jekll创建个人网站