【问题标题】:What is the default index type for MySQL?MySQL 的默认索引类型是什么?
【发布时间】:2018-03-24 02:27:30
【问题描述】:

MySQL 默认 InnoDB 存储引擎创建的各种索引都创建了哪些索引,聚簇索引还是非聚簇索引,或者不同的索引有不同的索引类型?我不明白方便,我还没有找到答案。非常感谢。

【问题讨论】:

标签: mysql


【解决方案1】:

从您的问题的角度来看,聚集索引是“默认”,我想这可能是一个简单的答案,但没有默认的索引类型。

聚集索引是最常见的索引类型,聚集索引通常是任何关系数据库(MySQL、Sql Server 等)中表中每一行的键或 ID 的索引方式。

聚集索引在磁盘上按您希望数据排序的方式物理排序。

最常见的例子是将记录插入到表中,并且每次插入记录键都会增加 1,这会为插入的每条记录创建一个唯一的键 id,并且此唯一键上的聚簇索引在磁盘上物理排序为插入的每条记录订购 1、2、3、4 等。

这个例子是主键,主键是表中记录的唯一ID,主键几乎都是聚集索引,购买默认主键会聚集unless you explicitly express that you want the Primary Key to be Nonclustered

每个表只能有一个聚集键,至少 Sql Server 就是这样,因为表行在硬盘上按照聚集索引的顺序进行物理排序,所以它是有道理的将很难在磁盘上以多种方式对表中的索引数据进行物理排序。

现在,非聚集索引是任何将索引映射到表行以进行快速查找的 Array 或 Hashtable,Array 或 Hashtable 或其他可能使用的数据结构将存储在磁盘上,但表中的记录不会根据您的非聚集索引进行物理排序。

对于给定的数据库表,您可以拥有一个聚集索引和多个非聚集索引。

【讨论】:

  • 可以建立非聚合索引吗?还是默认是非聚合索引?
  • @DuZhentong 我不熟悉非聚合索引,不知道那是什么,在我之前从未将其用作数据库术语
  • 因为文档上只有一个聚集索引,但是我对另一个比较好奇。
猜你喜欢
  • 1970-01-01
  • 2021-11-29
  • 2014-07-28
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 2010-12-06
  • 2014-09-30
相关资源
最近更新 更多