`
jarod2008
  • 浏览: 82453 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

sequence主键相对于复合主键的优势

 
阅读更多

用Sequence来做主键,相比复合列做主键,有如下好处:
1.性能高
2.灵活性好
3.开发便捷
--------------------------
1.性能高是指多表连接时,   一个表的主键是多列的组合,   另一个表以此为外键,   那么这两个表做连接时的性能相比都以一个Number列来连接来说,   哪个的性能更好?   Buffer   Gets更低?

2.灵活性好是指当你用有意义的字段组合来表示主键时,   如果这些字段发生了变化,   对你的系统来说将是非常痛苦的事情,   比如用身份证号码来做主键,   那么身份证号码15位升18位,   那对你的系统来说将是一场灾难.

3.开发便捷是指,对于一个Table当你在代码中系统通过主键去定位一笔数据时,   你希望主键是单列的还是复列的?   如果是用in子句定位多笔呢?

分享到:
评论

相关推荐

    oracle中的sequence实现主键增长

    Oracle中的Sequence是数据库管理系统提供的一种机制,用于生成序列化的整数,通常用于主键或唯一标识符,确保数据的唯一性和有序性。在Oracle中,Sequence不同于其他数据库系统的自增字段,例如SQL Server中的`...

    Hibernate主键策略-sequence

    1. **配置Sequence主键策略** 在Hibernate的映射文件或注解中,我们需要配置使用序列来生成主键。对于XML配置,可以在`<id>`标签下使用`<generator>`子标签,指定为`sequence`: ```xml <generator class="...

    oracle 主键自增 sequence

    ### Oracle 主键自增 Sequence 的实现与应用 #### 一、Sequence 的概念及用途 在 Oracle 数据库中,`Sequence` 是一种用于生成一系列唯一数值的对象。这些数值可以按照特定的规则递增或递减,并且可以设定是否循环...

    主键生成器sequence

    ### 主键生成器sequence在Oracle中的应用 #### 一、概述 在数据库设计与开发过程中,经常需要为数据表中的某列(通常是主键)自动分配一个唯一且递增的值,以确保每一行记录的独特性。Oracle数据库提供了一种非常...

    浅谈MyBatis-Plus学习之Oracle的主键Sequence设置的方法

    对于实体类,我们需要使用MyBatis-Plus的注解来指定使用Sequence生成主键。例如,对于User类: ```java public class User { @TableId(type = IdType.INPUT) @KeySequence(value = "seq_user", clazz = Integer...

    Oracle sequence 重置(失效恢复)

    这种情况通常发生在数据迁移后,原有的Sequence不再与表中的最大值相匹配,导致新记录插入时出现ID冲突或者跳号的情况。为了解决这个问题,我们需要对失效的Sequence进行重置,使其能够继续正常工作。 #### 一、...

    mybatis自增主键文档

    对于Oracle,可以通过Sequence来生成主键,而对于MySQL,可以直接依赖其内置的自增特性。如果需要在插入后获取主键值,可以利用`<selectKey>`元素。在编写MyBatis映射文件时,根据具体数据库类型和业务需求进行适当...

    Hibernate主键生成方式

    例如,对于Oracle会选择Sequence,对于MySQL则选择Identity。这种方式简化了开发,但也可能导致在不同数据库间迁移时遇到问题。 6. **UUID方式**:`<generator class="uuid.hex"/>` 这种方式生成的是128位的UUID,...

    持久化类主键生成策略+例子

    在Java的持久化框架中,如JPA(Java Persistence API)和Hibernate,主键生成策略是数据模型设计的重要部分。主键通常是表中唯一标识记录的一列或一组列,用于确保数据的完整性和唯一性。本篇文章将深入探讨JPA的4种...

    sequence等同于序列号

    在这个例子中,`emp_sequence`是一个名为“emp”的表生成主键所使用的序列。每次调用`NEXTVAL`方法时,`sequence`值将递增1,并且从1开始计数。如果不设置最大值,则默认为无上限。此外,还可以选择是否让`sequence`...

    Hibernate主键生成策略

    - **描述**:与 hilo 类似,但主键历史保存在 Sequence 中,适用于支持 Sequence 的数据库。 - **优点**:支持高并发,性能好。 - **缺点**:需要支持 Sequence 的数据库。 - **应用场景**:在 Oracle 等支持 ...

    Sequence简单介绍.pdf

    序列(Sequence)是一种用于生成一系列数值的数据对象,常用于数据库系统中为主键提供自动递增的功能。本篇文章主要聚焦于Oracle数据库与SQL Server数据库中序列的具体实现方式及其迁移过程中的一些注意事项。 ####...

    hibernate主键生成策略

    - 对于 Oracle 数据库,采用 `Sequence` 方式生成主键。 - 对于 MySQL 和 SQL Server 数据库,则采用 `Identity` 方式生成自增主键。 - **特点**: - 实现简单,无需过多配置。 - 高度兼容不同数据库。 - 是最...

    mycat 主键自增代码

    在 Mycat 中,主键自增是数据库操作中的一个重要环节,对于保证数据的一致性和完整性具有关键作用。本文将深入探讨 Mycat 中主键自增的实现原理、配置以及常见问题。 1. Mycat 主键生成策略 Mycat 支持多种主键...

    oracle中sequence介绍及应用

    ### Oracle中的Sequence...通过以上步骤,我们可以看到Sequence在Oracle数据库中的强大功能和广泛用途,不仅能够方便地实现主键自增,还能灵活生成各种类型的序列号。这对于日常的数据处理工作来说是非常实用的工具。

    sequence-diagram.zip

    《序列图绘制工具sequence-diagram-js的深度解析与应用》 序列图,作为一种重要的系统建模工具,广泛应用于软件设计和开发中,它清晰地展示了系统内各对象间交互的顺序。sequence-diagram-js是一个基于JavaScript的...

    Hibernate中主键生成策略

    主键通常是表中唯一标识记录的一列,对于数据的完整性和一致性至关重要。以下是对Hibernate中主键生成策略的详细解释。 1. **Identity策略**: 这种策略在数据库级别生成主键,常见于MySQL和SQL Server。当一个新...

    Oracle创建自增字段方法-ORACLE SEQUENCE的简单介绍

    Oracle SEQUENCE 是一种特殊的数据库对象,用于生成一系列唯一的数值,通常用于主键或其他需要唯一标识的字段。下面将详细介绍 Oracle 创建自增字段方法-ORACLE SEQUENCE 的简单介绍。 1. 创建 SEQUENCE 要创建 ...

    NumberSequence

    总之,了解并正确使用AX中的Number Sequence对于企业的数据管理和流程效率至关重要。它不仅简化了编号过程,还确保了数据的完整性和合规性。通过上述步骤,用户可以自定义并维护适合其业务需求的Number Sequence,...

Global site tag (gtag.js) - Google Analytics