自增主键的一点思考

背景:mysql

曾几何时,自增主键作为我开发中设置主键的策略。不知道从哪里学习的,在数据中出现非业务的主键有帮助。于是,养成了一个习惯,建表就创建自增主键。最近在初始化一些数据信息。对自增主键有了进一步的体会。

以前,主要觉得用一个自增主键,不用限制唯一性。因为自增的,它总不会重复吧。

最近在处理数据信息,连带了看一点mysql基础知识(关于InnoDB)

1. 如果我们不为当前表,创建一个主键或者唯一性的索引,那么引擎会自动设置一个隐藏的主键来标识当前列数据信息。

2. 对于我们使用一个自增的主键作为id的时候,对于同步数据信息的,我们可以通过自增id的大小比较,加快分页查询信息。
例如:

-- 正常的获取分页信息
select * from tb limit 1000000, 1000



-- 通过主键,能够更快的过滤数据起始点
select * from tb where id > 1000000 limit 1000



3. 在中间表建立关系的时候,我们采用id来关联,那么在初始化数据的时候,我们必须等主表的数据创建完成后,才能再处理中间表,因为中间表需要id信息,而这些信息是在Insert到主表后才能被确定的。

你可能感兴趣的:(自增主键的一点思考)