MySql教程
MySql用户管理
MySQL数据库
MySql表格和视图
MySQL查询
MySQL索引
MySQL子句
MySQL授权
MySql控制流
MySQL条件
MySQL连接
MySQL键
MySQL触发器
MySQL聚合函数
MySQL常用
MySQL正则表达式
MySql差异性

MySQL 聚集索引

索引是一个单独的数据结构,允许我们在现有表中添加索引。它使您能够改进更快地检索数据库表上的记录。它为索引列的每个值创建一个条目。
聚集索引实际上是存储行数据的表。它基于只能以一种方式排序的键值定义表数据的顺序。在数据库中,每个表只能有一个聚集索引。在关系数据库中,如果表列包含主键或唯一键,则 MySQL 允许您创建名为 PRIMARY (基于该列)。

特征

聚集索引的基本特征如下:
它有助于我们同时存储数据和索引。 它仅基于键值以一种方式存储数据。 关键查找。 它们是扫描和索引搜索。 聚集索引始终使用一个或多个列来创建索引。

优点

聚簇索引的主要优点如下:
它有助于我们最大程度地提高缓存命中率并最大程度地减少页面传输。 对于具有最大,最小和计数查询的范围或组,这是一个理想的选择。 在范围的开始,它使用定位机制来查找索引条目。

缺点

聚集索引的主要缺点如下:
它包含许多不按顺序排列的插入记录。 它会创建许多恒定的页面拆分,例如数据页面或索引页面。 更新记录总是很长时间。 对于SQL查询,例如插入,更新和删除,它需要额外的工作。

InnoDB表上的聚集索引

MySQL InnoDB表必须具有聚集索引。 InnoDB表使用聚簇索引来优化大多数常见查找和诸如INSERT,UPDATE和DELETE命令之类的DML(数据操作语言)操作的速度。
在InnoDB表中定义了主键时,MySQL始终将其用作名为PRIMARY的聚集索引。如果该表不包含主键列,则MySQL搜索 唯一键。在唯一键中,所有列均为 NOT NULL ,并将其用作聚集索引。有时,表没有主键或唯一键,然后MySQL在内部创建隐藏的聚集索引 GEN_CLUST_INDEX ,其中包含行ID的值。因此,InnoDB表中只有一个聚集索引。
除PRIMARY索引(聚集索引)以外的索引被称为二级索引或非聚集索引。在MySQL InnoDB表中,非聚集索引的每个记录都有行和列的主键列。 MySQL使用此主键值在聚集索引或辅助索引中搜索行。

示例

在以下语句中,PRIMARY KEY是聚集索引
CREATE TABLE `student_info` (
  `studentid` int NOT null AUTO_INCREMENT,
  `name` varchar(45) default NULL,
  `age` varchar(3) default NULL,
  `mobile` varchar(20) default NULL,
  `email` varchar(25) default NULL,
  PRIMARY KEY (`studentid`), //clustered index
  UNIQUE KEY `email_UNIQUE` (`email`)
)

昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4