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

mysql的uuid和auto_increment

阅读更多
http://www.mysqlperformanceblog.com/2007/03/13/to-uuid-or-not-to-uuid/

一直以为pk用uuid比较好(从用hibernate来的),该文章给出来另外一种看法,值得认真读,注意看评论。
分享到:
评论

相关推荐

    mycat 主键自增代码

    Mycat 支持多种主键生成策略,包括:UNIONID(联合ID)、SEQUENCE(序列号)、TABLE(表序列)、UUID 和 AUTO_INCREMENT(自增)。其中,AUTO_INCREMENT 策略是与 MySQL 自增主键类似的方式,适用于单表插入操作。...

    深入分析mysql为什么不推荐使用uuid或者雪花id作为主键

    前言:在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?...

    MySQL循环插入千万级数据

    `id` int(11) NOT NULL AUTO_INCREMENT, `uuid` varchar(50) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5999001 DEFAULT CHARSET=utf8; 2、创建一个循环插入的存储过程 CREATE DEFINER=...

    MySQL自增长键理解

    如果插入的值大于或等于当前自增值,系统将根据算法寻找一个新的自增值,这个算法是从`auto_increment_offset`开始,按照`auto_increment_increment`的步长累加,直至找到一个大于插入值的新值。 创建包含自增长键...

    mysql把主键定义为自动增长标识符类型

    - 如果尝试插入一个已存在的`AUTO_INCREMENT`值,MySQL会报错,而在SQL Server中则会覆盖原有的值(取决于隔离级别和设置)。 - 虽然通常将自动增长主键用作整数类型,但也可以与其他类型(如UUID)一起使用,这取...

    Oracle与Mysql自动增长列(id)的区别

    综上所述,Oracle和MySQL在自动增长列的实现方式上有显著区别,Oracle依赖于序列,而MySQL直接在表定义中使用`AUTO_INCREMENT`。这些差异反映了两个数据库系统在设计哲学和功能上的不同,选择哪一个通常取决于具体的...

    Laravel开发-has-uuid

    "Laravel开发-has-uuid" 指的是在Laravel项目中同时使用自动递增ID(Auto Increment)和UUID(Universally Unique Identifier)作为模型的主键。这种设计允许我们在保持数据库性能的同时,提供更灵活的主键策略。 ...

    JPA环境搭建及JPA实例与JPA主键生成策略

    1. **IDENTITY**:数据库负责生成主键,如MySQL的`AUTO_INCREMENT`。 2. **SEQUENCE**:使用数据库序列生成主键,适用于支持序列的数据库,如Oracle。 3. **TABLE**:通过数据库表生成主键,适用于不支持序列的...

    SQLServer和MySql语法和关键字的区别详解

    3. **自动增长字段**: MySQL 使用 `AUTO_INCREMENT` 关键字来创建自动增长的字段,而 SQLServer 使用 `identity(1,1)` 来实现相同的功能。 #### 表结构与创建 4. **默认值表示**: 在 SQLServer 中,默认值通常表示...

    mysql中binlog_format模式与配置详细分析

    - AUTO_INCREMENT冲突可能导致插入阻塞。 - 资源消耗可能较大,特别是处理复杂语句时。 **RBR优点**: - 数据一致性更高,因为只记录实际改变的行。 - 更适合复杂的存储过程和触发器。 - 减少因全表扫描导致的锁...

    MySQL联合索引用法示例

    本文实例讲述了MySQL联合索引。分享给大家供大家参考,具体如下: 员工表 userid 部门表 deptid 员工部门表 ... `id` int(11) NOT NULL AUTO_INCREMENT, `deptname` char(32) NOT NULL, PRIMARY KEY (`id`)

    分布式id生成详解.pdf

    - 使用数据库的自动递增功能,如MySQL的`auto_increment`。优点是简单且有序,但并发性差,数据库压力大,一旦数据库故障,ID生成将受影响,还存在数量泄露的风险。 - 优化方案包括数据库水平拆分,设置不同初始值...

    mysql优化记录文档

    主键最好使用整数类型,因为它们速度快,且可以配合AUTO_INCREMENT。避免使用字符串类型作为主键,除非必要,因为它们更消耗空间且较慢。同时,生成“随机”字符串如MD5或UUID作为主键时,也要考虑性能影响。 索引...

    Hibernate内置标识符生成器

    2. Identity 标识符生成器:这是由底层数据库自身来处理主键生成的策略,例如 MySQL 的 `auto_increment` 或 SQL Server 的 `identity`。这种生成器简单且高效,但它的主要缺点是依赖于特定的数据库特性,因此不是跨...

    hibernate的主键生成策略

    identity策略依赖于数据库的自动增长功能,如MySQL的`AUTO_INCREMENT`或SQL Server的`IDENTITY`。Hibernate会在插入记录时自动获取数据库生成的主键值。这种方法简单且高效,但不跨数据库,因为不是所有数据库都...

    JPA的Id注解.docx

    - **GenerationType.IDENTITY**:依赖于数据库的自动递增特性,如MySQL的`AUTO_INCREMENT`。 - **GenerationType.AUTO**:这是默认策略,具体实现取决于底层的JPA提供商。例如,Hibernate对于大多数数据库会选择`...

    Hibernate映射文件主键的生成

    这种策略适用于支持自动增长主键的数据库,如MySQL的`AUTO_INCREMENT`或SQL Server的`IDENTITY`。在Hibernate中,只需在实体类的主键字段上添加`@GeneratedValue(strategy = GenerationType.IDENTITY)`注解,...

    hibernate 主键生成策略

    - **描述**:利用 SQL Server 和 MySQL 的 AUTO_INCREMENT 特性自动为字段分配下一个可用的 ID。 - **应用场景**:适用于这两种数据库类型,但不适用于 Oracle,因为 Oracle 不支持 AUTO_INCREMENT 属性。 #### 6. ...

    hibernate主键生成策略

    这种策略依赖于数据库自身的自动增长功能,例如MySQL的`AUTO_INCREMENT`或SQL Server的`IDENTITY`。Hibernate不需进行任何操作,数据库会自动为新行分配主键。 6. **sequence**策略: 与`identity`类似,但适用于...

Global site tag (gtag.js) - Google Analytics