前言
在MySQL中,数据表的主键一般采用id字段自增的形式。使用自增ID给我们带来不少便捷,但也有不少坏处,在一些场景下是不推荐使用自增ID的。
1.什么是自增ID
自增ID是在设计表时将id字段的值设置为自增的形式,这样当插入一行数据时无需指定id会自动根据前一字段的ID值+1进行填充。在MySQL数据库中,可通过sql语句AUTO_INCREMENT来对特定的字段启用自增赋值 使用自增ID作为主键,能够保证字段的原子性.
2.自增ID有什么好处
在添加一行时无需对自增id列赋值,在添加一行数据时可留空,会自动根据前一字段id值+1填充
单个表中能够唯一标识该字段,保证原子性。在单个表中使用自增ID能够保证主键不重复
3.自增ID有什么坏处
不存在连续性,也就是说若表中存有3行数据,ID字段为1,2,3 那么当删除字段2时就变为1,3,不具有连续性
合并表会出现ID重复的情况,上面说个使用自增ID能够在单个表中保证ID字段唯一,但两个表何为1个表,时不具有这种性质的。
4.什么场景下不使用自增ID
正是因为自增ID的缺点也就是无法在多个表中,或者多个数据库中保持ID主键唯一不重复,所以若是使用分布式数据库以及数据合并的情况下时不能使用自增ID的。
若是能够有其他的字段能作为主键保证唯一性,无需使用自增ID
5.自增ID的替代者UUI
UUID含义是通用唯一识别码 (Universally Unique Identifier),指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。换句话说能够在一定的范围内保证主键id的唯一性。
6.UUID存在的目的
UUID的目的,是让分布式系统中的所有元素,都能有唯一的辨识信息,而不需要通过中央控制端来做辨识信息的指定。如此一来,每个人都可以创建不与其它人冲突的UUID。在这样的情况下,就不需考虑数据库创建时的名称重复问题。也就完美解决的自增ID的缺点。
总结
根据自己项目实际情况来定!!!没有一套规定的方案适合任何一个系统。文章来源:https://www.toymoban.com/news/detail-467865.html
更多可参考之前写的文章:分布式唯一 ID 的 8 种生成方案文章来源地址https://www.toymoban.com/news/detail-467865.html
到了这里,关于【数据库】自增ID有什么坏处?什么样的场景下不使用自增ID?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!