在 AUTO_INCREMENT 列上设置 INDEX 有用吗?
Is it useful to set an INDEX on an AUTO_INCREMENT column?
一个AUTO_INCREMENT PRIMARY KEY
已经是数字顺序了,所以查询,至少在我对数据库的基本理解中,从一开始就会实现一个binary search,那么设置索引有什么用在这样的专栏上?我理解整数以半随机顺序排列时的用途,但我没有在 AUTO_INCREMENT
列上看到该点。
无需为 PRIMARY KEY 创建另一个索引。
在InnoDB中,PRIMARY KEY也被称为聚簇索引。这意味着整个 table 本身存储为 B 树,按为 table 的主键定义的列排序。
这实际上与AUTO_INCREMENT列存储递增数字无关。即使你不使用AUTO_INCREMENT,并且你以随机顺序插入行,它们也会按升序插入聚集索引。
一个AUTO_INCREMENT PRIMARY KEY
已经是数字顺序了,所以查询,至少在我对数据库的基本理解中,从一开始就会实现一个binary search,那么设置索引有什么用在这样的专栏上?我理解整数以半随机顺序排列时的用途,但我没有在 AUTO_INCREMENT
列上看到该点。
无需为 PRIMARY KEY 创建另一个索引。
在InnoDB中,PRIMARY KEY也被称为聚簇索引。这意味着整个 table 本身存储为 B 树,按为 table 的主键定义的列排序。
这实际上与AUTO_INCREMENT列存储递增数字无关。即使你不使用AUTO_INCREMENT,并且你以随机顺序插入行,它们也会按升序插入聚集索引。