【发布时间】:2018-05-22 15:30:28
【问题描述】:
聚簇索引是否与 MySQL 中的实际数据分开创建和存储,如果是,那么为什么我们不能拥有多个聚簇索引。我们需要做的就是创建另一个索引并将其存储在内存中。
【问题讨论】:
-
AFAIK 大多数数据库只允许单个聚集索引,因为索引是基于数据在某处物理存储的方式,并且通常存在该数据的单个副本。
-
@TimBiegeleisen:感谢您的澄清。那么,sql 是否会在磁盘中创建数据副本并将其作为索引存储在内存中以及聚集索引的情况下。就像 sql 在非聚集索引的情况下所做的那样,它使用 b-tree 创建一个索引,但叶节点只包含指向实际数据的指针
-
下面的答案对我来说看起来不错。
-
@prem,因为记录是按照集群索引字段的顺序存储的,所以不需要 b-tree。在查找过程中反复将列表分成两半具有相同的效果 - 与 b 树不同,它始终是完美平衡的。
-
@JoshuaRubin -- 不。BTree 或类似的东西,是必要的。
标签: mysql database indexing clustered-index