`

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

 
阅读更多

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

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动态采样。

 

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

2
2
分享到:
评论

相关推荐

    持久层设计

    在设计持久层时,需要考虑以下几个关键需求: - **数据一致性**:确保所有数据操作都能正确地反映到数据存储中。 - **事务管理**:支持原子性、一致性、隔离性和持久性(ACID属性)的事务处理。 - **性能优化**:...

    EJB 持久层设计

    **EJB 持久层设计** EJB(Enterprise JavaBeans)是Java EE平台的核心组成部分,主要用于构建可扩展、安全且事务处理能力强的企业级应用程序。持久层是任何应用程序中的关键部分,它负责管理数据的存储和检索,通常...

    论文研究-基于软件体系结构的对象持久层设计方案.pdf

    针对Scott Ambler提出的健壮持久层设计方案存在的问题,提出了一种基于软件体系结构的对象持久层设计方案。将体系结构作为对象持久层的整体视图,反映了对象持久层的整体功能和结构,并利用层模式实现了对象持久层的...

    面向应用的持久层设计

    面向应用的持久层设计不仅关注数据如何被保存,更重要的是如何组织和设计这个过程,使之既高效又易于维护。以下是一些重要的设计原则: 1. **清晰的分层**:持久层应当是一个明确的逻辑层,它与其他层(如表示层、...

    鲁棒的数据库持久层设计.pdf

    一个好的持久层设计应具备高性能、低耦合、易于维护和扩展的特点。 ### 关键知识点详解 #### 持久层的类型 持久层设计依据不同的应用场景和需求,可以分为多种类型,包括但不限于关系型数据库持久层、NoSQL数据库...

    鲁棒数据库持久层设计文档

    《鲁棒数据库持久层设计》是一本深入探讨数据库访问类库设计的重要文献,它为ORM(对象关系映射)工具的开发提供了宝贵的指导。张笑猛的翻译版本使得这一技术资源更加亲民,便于广大开发者理解和应用。在本书中,...

    鲁棒的数据库持久层设计

    在设计鲁棒的持久层时,需要考虑以下几个核心需求: 1. **数据一致性**:确保数据在持久层中的完整性。 2. **性能优化**:针对高并发场景下的性能进行优化。 3. **事务管理**:支持多种事务隔离级别,满足不同的...

    设计健壮的关系数据库持久层

    文档中的设计部分详细讨论了持久层的设计要素: 1. **总体设计**:从高层次上概述了持久层的组成部分及其相互作用。 2. **具体类的设计**:每个类的作用和其实现细节,如持久对象类如何封装数据库记录的状态。 3. *...

    asp仿j2ee持久层

    ASP仿J2EE持久层是针对ASP开发的一种模拟Java J2EE平台中持久层技术的实现。在J2EE环境中,持久层主要负责数据库的交互,包括数据的存取、对象关系映射(ORM)以及事务管理等。ASP,虽然在功能上不及J2EE强大,但...

    java 自定义持久层框架代码

    总的来说,这个自定义持久层框架结合了多种设计模式,旨在提高代码的复用性和可扩展性,同时也为开发者提供了更大的自由度来满足项目的特殊需求。通过深入理解和使用这样的框架,可以进一步提升开发效率和代码质量。

    C++ 持久层

    描述中提到的"C++持久层"是一个高效且易于使用的库,它的设计目的是消除传统方式下编写数据库代码的繁琐过程。通过这个库,开发者可以更专注于业务逻辑,而不是数据库操作。"去掉以前的繁杂的数据库代码"意味着此库...

    Hibernate数据持久层框架v5.2.13

    Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由...它的设计目标是将软件开发人员从大量相同的数据持久层相关编程工作中解放出来。无论是从设计草案还是从一个遗留数据库开

    springboot框架基础上使用MyBatis简化持久层开发

    "SpringBoot框架基础上使用MyBatis简化持久层开发" 使用SpringBoot框架基础上使用MyBatis简化持久层开发,是当前流行的开发模式之一。该模式可以简化持久层开发,提高开发效率,降低开发成本。下面是使用SpringBoot...

    mybatis持久层框架

    该配置文件描述mybatis持久层框架技术的,可有将SQL放到配置文件并且规范数据库连接等

    基于Java的Hibernate和JPA持久层框架设计源码

    本项目为“基于Java的Hibernate和JPA持久层框架设计源码”,包含92个文件,其中65个Java源文件、21个XML配置文件、1个Gitignore文件、1个Spring Beans配置文件、1个SQL脚本文件、1个属性文件和1个JSP页面。...

    一套简化Java持久层操作的类库

    在给定的标题“一套简化Java持久层操作的类库”中,我们可以理解这是一个专为简化Java开发人员进行数据库操作而设计的工具。它可能包含了对数据库CRUD(创建、读取、更新、删除)操作的抽象,使得开发者可以更专注于...

    文件系统持久层 sst256401 stm25p64

    在嵌入式系统中,文件系统的持久层设计至关重要,因为它直接影响到数据的可靠性和效率。针对大容量、大擦除块的SPI接口Flash设备,如SST256401和STM25P64,其特有的硬件特性为文件系统设计带来了一定挑战。 SST...

    毕业设计、课程设计、大作业-微信小程序奶茶下单系统,前后端分离,Json通信,Springboot后端,,持久层mybatis

    毕业设计、课程设计、大作业——微信小程序奶茶下单系统,前后端分离,Json通信,Springboot后端,,持久层mybatis。 技术栈 客户端 微信小程序 后台前端 React,Ant组件库 后台后端 SpringBoot,Mysql 四.具体...

    基于Hibernate的持久层增强工具包设计源码

    本项目是基于Hibernate开发的持久层增强工具包设计源码,主要使用Java进行开发。项目共包含103个文件,其中Java源代码文件90个,Java虚拟机文件7个,XML配置文件2个,Git忽略配置文件1个,项目许可证文件1个,...

Global site tag (gtag.js) - Google Analytics