Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在自动增量列上设置索引有用吗?_Mysql_Indexing_Mariadb_Binary Search - Fatal编程技术网

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已经定义了一个主键。他们询问是否需要在现有主键之外的相同列上定义索引。