这篇文章给大家聊聊关于mysql中InnoDB表为什么要建议用自增列做主键,以及为什么不建议使用自增主键对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
本文目录
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,本文到此结束,希望对大家有所帮助。
声明:本文内容来自互联网不代表本站观点,转载请注明出处:https://bk.77788889.com/12/119516.html