[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. 并发压力测试是必需的
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. 并发压力测试是必需的