代码优化
一、代码结构层次的优化(目的:更加方便代码的维护--可维护性,可读性)
1.代码注释(代码规范)
2.工具类的封装(方便代码的维护,使代码结构更加清晰不臃肿,保证团队代码质量一致性)
3.公共部分的提取
二、代码性能的优化(目的:使程序的性能最优化)
1.使用一些性能比较高的类(bufferInputStream)
2.缓存区块的大小(4k或8k)
3.公共部门的提起
4.通常要使用StringBuffer代替String加号拼接
5.单线程应尽量使用HashMap,ArrayList,因为HashTable,Vector使用了同步机制,降低了性能
6.在Finally块中关闭流,断开连接,释放资源
Sql优化
1.外键必须加索引
2.避免在where子句中对有索引的字段进行运算,这会导致索引失效,从而进行全表扫描
3.在where及order by 涉及的列上建立索引,要尽量避免全表扫描
4.在设计表时要避免表中字段出现null的情况,通常要为其设置默认值
5.避免在查找时放弃使用索引而进行全表扫描
6.select 语句中避免使用*,只查询需要返回的字段,这样可以减少oracle解析sql语句的时间
7.用not exists 替换not in 操作符,用exists替换in
Hibernate优化
在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存太大时会严重影响性能,所以在使用Hibernate处理大数据量时,可以使用Session.clear()或者Session.evict(object),在处理过程中,清楚全部的缓存或者清楚某个对象。
通过使用Hibernate的一级缓存,二级缓存,查询缓存等来提高性能。
Hibernate可以通过设置hibernate.jdbc.fetch_size,hibernate.jdbc.batch.size等属性,对Hibernate进行优化。Batch Size是设定对数据库进行批量删除,批量更新和批量插入的时候的批次大小,Batch Size越大和数据库交互的次数就越少,速度就越快,但也不要无限的大下去,通常选择一个合适的值,如100条。其次,我们在进行大批量的导入操作时,可以结合batchsize进行分批量提交,从而达到最优效果。