主键中的自动增量间隙
在设计用于大量数据存储的表上使用自动增量主键时,这一点至关重要请注意数字序列中可能会出现间隙。这不是错误,而是故意的设计选择,原因如下:
重叠事务可能会导致某些插入被分配 ID,而其他插入失败并回滚,从而在序列中留下未使用的间隙。
例如,如果两个并发事务尝试插入记录并获取连续的自增 ID(例如 42 和 43),并且其中一个事务随后失败,则未使用的 ID (42) 将在序列中创建间隙。
确保所有插入的连续值将需要强制执行顺序事务执行,这对于可扩展系统来说是不切实际的。
避免插入重复条目位于唯一列中,您正在使用 INSERT IGNORE。但是,这种做法不会影响自动增量主键的行为。
因此,必须了解自动增量 ID 中的间隙是不可避免的,并且并不表示任何错误或数据损坏。
以上是为什么自增主键会有间隙?的详细内容。更多信息请关注PHP中文网其他相关文章!