持久层设计某次泛化讨论的几个思路

本文介绍了在进行表设计时需要考虑的因素,包括基于模型和业务约束的设计要求,以及在面对大数据量时如何提高系统的可用性。讨论了表结构、存储过程、异步数据处理、旧数据兼容等方面,并提出了针对大数据量的优化措施。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表设计基于模型和业务约束的要求:

1、表的设计必须从系统建模开始,提供ER图,表结构遵循范式要求。

2、考察几个数据处理异常复杂的点,包括需要使用存储过程的场景。

3、异步数据存取场景的识别。

4、旧有数据的兼容。

 

大数据量下可用性的要求:

1、大表的识别和设计,确定索引,避免大表JOIN操作。

2、一次用户请求事务中,至多执行两次commit操作。Oracle写回滚日志的关系,数据量不大的时候,commit经常比update还要耗时。

3、update操作对数据量有预估计,大数据量批量和异步完成,避免回滚段填塞过度。

4、根据实际场景(包括存储数据量、可用性和可扩展性,ACID要求等)选择持久层对大数据量的接纳方式:

(1)RAC

(2)读写库分离

(3)分区,水平扩展

(4)切换到某一NoSQL数据库,如Cassandra、Redis、MongoDB等

5、选择合适的持久层框架,如iBatis、Hibernate。

6、选择适当的持久层缓存机制,基于持久层对象的简单存储,LRU算法。

7、对于大表,提供可靠的表数据量估计,控制其执行计划,避免Oracle动态采样。

 

文章系本人原创,转载请注明作者和出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值