Mysql 在自动增量列上设置索引有用吗?
Mysql 在自动增量列上设置索引有用吗?,mysql,indexing,mariadb,binary-search,Mysql,Indexing,Mariadb,Binary Search,AUTO_INCREMENT主键已经是数字顺序了,所以查询,至少在我对数据库的基本理解中,从一开始就可以实现,那么在这样的列上设置索引有什么用呢?如果整数以半随机顺序排列,我理解它的用途,但我看不到自动增量列上的点。没有必要为主键创建另一个索引 在InnoDB中,主键也称为聚集索引。这意味着整个表本身存储为B树,按为表主键定义的列排序 这实际上与AUTO_INCREMENT列存储递增的数字这一事实无关。即使不使用自动增量,并且以随机顺序插入行,它们也将以升序插入聚集索引。有用吗?MySQL强制您
AUTO_INCREMENT主键
已经是数字顺序了,所以查询,至少在我对数据库的基本理解中,从一开始就可以实现,那么在这样的列上设置索引有什么用呢?如果整数以半随机顺序排列,我理解它的用途,但我看不到自动增量列上的点。没有必要为主键创建另一个索引
在InnoDB中,主键也称为聚集索引。这意味着整个表本身存储为B树,按为表主键定义的列排序
这实际上与AUTO_INCREMENT列存储递增的数字这一事实无关。即使不使用自动增量,并且以随机顺序插入行,它们也将以升序插入聚集索引。有用吗?MySQL强制您在自动增量选项上添加一个键(索引)。。您会收到错误“error:ER\u error\u AUTO\u KEY:error table definition;只能有一个AUTO列,必须将其定义为键”,如果您没有,那么在使用InnoDB引擎时始终创建自己的主键/唯一键是非常重要的…发布我的解释why@RaymondNijland,当然这是个好习惯,但是我假设OP已经定义了一个主键。他们询问是否需要在现有主键之外的相同列上定义索引。