自增ID有什么坏处?什么样的场景下不使用自增ID?

本文探讨了自增ID的坏处,如无序性和空间占用,并提出UUID作为替代方案。UUID提供独立性、库独立性和安全性,但可能影响插入性能和占用更多空间。解决方案包括在MySQL中使用特定类型存储UUID,以及调整自增ID的起始值和增量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【自增ID有什么坏处?什么样的场景下不使用自增ID?】

1.背景介绍

在MySQL中,数据表的主键一般采用id字段自增的形式。使用自增ID给我们带来不少便捷,但也有不少坏处。

2.知识剖析

2.1什么是自增ID(MySQL数据库)
自增ID是在设计表时如果将id字段的值设置为自增的形式也就是AUTO_INCREMENT,
那么当插入一行数据时就无需指定id,数据表会根据前一个id值+1进行填充。
指定了AUTO_INCREMENT的列必须要建索引,一般把ID作为主键,这样系统会自动为ID建立索引。
2.2自增ID有什么好处?
(1) 增加记录时,可以不用指定id字段,不用担心主键重复问题。
(2)数据库自动编号,速度快,而且是增量增长,按顺序存放,对于检索非常有利;
(3)数字型,占用空间小,易排序,在程序中传递也方便;

3.常见问题

自增ID有什么坏处?
(1) 不具有连续性,表中auto_increment最大值被删除,将不会被重用。就是说会跳号(如果设定的auto_increment_increment是1,那么下一次插入的id值将会从被删除的最大值算起,也就是被删除的最大值+1)
(2)历史数据表的主键id会与数据表的id重复,两张自增id做主键的表合并时,id会有冲突,但如果各自的id还关联了其他表,这就很不好操作。
(3) 很难处理分
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值