mysql中InnoDB表为什么要建议用自增列做主键

第十一篇 MySQL索引原理

这篇文章给大家聊聊关于mysql中InnoDB表为什么要建议用自增列做主键,以及为什么不建议使用自增主键对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

  1. mysql中InnoDB表为什么要建议用自增列做主键
  2. 请问对于数据库的主键究竟要不要用自增id呢
  3. 违反主键约束如何解决
  4. 主键字段不能是自动增加吗

mysql中InnoDB表为什么要建议用自增列做主键

你好!InnoDB引擎表是基于B+树的索引组织表、如果表使用自增主键那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。

请问对于数据库的主键究竟要不要用自增id呢

简单写点我的经验。

1,如果表只是用来记录非业务数据,如日志消息等,用自增ID没问题,这种场景不需要使用ID去检索。

2,业务上使用的标识字段不要用自增ID,因为自增ID不可控,数据迁移和合并困难。

3,业务上使用的主键如果不想用guid,可以自行生成,有很多流行的主键生成算法可以借鉴。无非是:空间(产生主键的机器标识,如mac地址、主板序列号等)+时间(时间戳,如unixepoch)+种子(递增序列,取值范围看生成的并发数)。这样即便是在不同的服务器上同时生成,也不会发生冲突。

违反主键约束如何解决

解决违反主键约束性

1.有创建序列号的可以把序列号调到当前记录ID的最大值+1;

2.进入系统文件system.properties,找到下面代码,把system.id.generator.type的值改为1;

#系统默认ID算法,0:数据库记录自增,1:数据库范围自增,默认为0

system.id.generator.type=1

主键字段不能是自动增加吗

能,但是自动增长的主键会有一定的限制,如果是数据太大导致到达最大了,会出现溢出的

OK,本文到此结束,希望对大家有所帮助。

mysql专题 一 深入理解Mysql索引底层数据结构与算法

声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://bk.77788889.com/12/119516.html

相关推荐