面试题精选-聚集索引和非聚集索引

聚集索引和非聚集索引包括哪些

在Mysql中,聚集索引一般指的是主键。非聚集索引指的是辅助索引、二级索引。(在Mysql中,只有Innodb引擎支持聚集索引)

聚集索引和非聚集索引优缺点

  1. 查询速度上,聚集索引优于非聚集索引。
  2. 插入数据速度上,非聚集索引要比聚集索引要快。

聚集索引特点

  1. 一个表只能有一个聚集索引,通常是主键,但不一定就是主键。
  2. 聚集索引的数据行的物理存储顺序和索引的逻辑顺序是相同的。
  3. 聚集索引的叶子结点包含该行的所有信息。

非聚集索引特点

  1. 一个表的非聚集索引可能有多个。
  2. 非聚集索引的数据行的物理存储顺序和索引的逻辑顺序是不同的。
  3. 非聚集索引的叶子结点存在指向数据行的指针。

如何创建聚集索引与非聚集索引

SqlServer

若表设置主键,默认主键就是聚集索引,若想手动创建聚集索引,需要把主键去掉。

USE database_name;
GO

-- 创建聚集索引
CREATE CLUSTERED INDEX index_name
ON table_name (index_columns1,index_columns2, ...);

-- 创建非聚集索引
CREATE NONCLUSTERED INDEX index_name
ON table_name (index_columns1,index_columns2, ...);

Mysql

USE database_name;
GO

-- 创建聚集索引
CREATE CLUSTERED INDEX index_name
ON table_name (index_columns1, index_columns2, ...);

-- 创建非聚集索引(索引类型为Normal)
CREATE INDEX index_name ON table_name(index_columns1,index_columns2, ...);
posted @ 2024-11-26 15:40  相遇就是有缘  阅读(51)  评论(0)    收藏  举报