持久层开发需要注意的一些地方

[b]ORM时注意事项
Load time[/b]
使用lazy load, load data as late as possible

[b]Load more data than needed[/b]
1) 设计domain object(在ORM中也可以说是一张数据表)不要添加太多的字段,这样load domain object时候会读出太多无用字段,影响效率,尽量遵循数据库范式, 建立Aggregate关系。
2)在读取数据时,在数据量大的时候,不要全部读取,只读取所需字段。

[b]数据库连接是数据库中开销最大的地方,需谨慎使用[/b]
尽可能使用连接池来进行处理,在Hibernate中就是这样使用的,有一个并发连接数,但要注意的是在生产环境下不要使用Hibernate自带的连接池,要使用第三方池如c3p0.

[b]数据分析
数据生命周期分析[/b]
分析数据是只读得还是可修改的,数据的访问及更新频率,根据这些来制定数据访问策略,如制定缓存等等

[b]数据访问模式分析[/b]
了解数据是怎样应用的可以帮助优化数据的读取策略,如根据应用在页面上的呈现可以来制定fetchsize等。


[b]查询模式分析[/b]
在同一个连接池中使用short-running查询和long-running reporting查询会给用户带来不好的体验,因为long-running reporting查询会长时间占用连接,因此short-running查询始终获取不到connection而被饿死。针对这种方式,使用两个连接池来处理这两种不同的查询类型。


[b]数据访问测试[/b]
1. 使用真实、规范的数据进行测试,并在测试时不要局限于相同的数据
2. 并发压力测试是必需的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值