百万级数据计算性能调优经验分享
2013-04-21 21:01
197 查看
最近本人在主持开发一个项目,客户方对数据计算的性能要求特别高,百万级复杂的计算时间不能超过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的时候请注明 -百万级数据性能调优
相关文章推荐
- 经验分享 |【PDF下载】大数据峰会之高可用大数据计算平台持续发布
- Spark计算性能调优经验汇总
- 招商银行吴颖:招行大数据应用经验分享
- spark性能优化:数据倾斜调优
- C#提升性能"数据库连接打开与关闭"经验分享(附:优化过的DBHelper类) 之配餐系统的开发
- Kaggle 数据挖掘比赛经验分享(转)
- 第20课:大数据性能调优的本质和Spark性能调优要点分析
- Asp.net MVC2 使用经验分享,性能与优化哪些方面可以提高
- 《Spark商业案例与性能调优实战100课》第6课:商业案例之通过Spark SQL实现大数据电影用户行为分析
- 基于Simase_LSTM的计算中文句子相似度经验总结与分享
- 经验分享:大学生研究生如何找到一份数据挖掘的工作
- Spark性能优化:数据倾斜调优
- MySQL插入数据性能调优
- Spark性能调优-总结分享
- MySQL 性能优化的最佳20多条经验分享
- 系统性能调优技术实战分享系列一
- JVM调优经验分享
- 客户端性能优化实战经验分享
- Spark性能调优之——在实际项目中调节数据本地化等待时长
- 分享Java性能调优的11个实用技巧