【MySql】数据库索引

文章介绍了数据库索引的概念,包括如何创建(如主键、唯一键自动创建,使用`INDEX`关键字,`ALTERTABLE`或`CREATEINDEX`语句)、查看和删除索引的方法。讨论了InnoDB存储引擎中B+树结构对索引的影响,以及聚簇索引和非聚簇索引的区别,强调了索引创建的原则,如选择频繁查询的字段、避免频繁修改的字段等。
摘要由CSDN通过智能技术生成

索引

可以简单理解为一本书的目录信息,是为了提升查找效率而建立的

索引的创建

1、在创建一个主键、唯一键、外键时候,数据库会自动地针对查找字段设置索引;

在这里插入图片描述

2、在创建表时侯,使用 index 关键字进行普通索引的声明

>
在这里插入图片描述

3、修改表结构,给指定的字段添加索引
alter table 表名 add index 索引名(要增加索引信息的列名)

在这里插入图片描述

在这里插入图片描述

4、为指定的表创建索引
create index 索引名 on 表名(列名)

在这里插入图片描述
创建索引信息之后在进行索引的查看,发现新增了一个索引信息----即我们刚刚创建的索引信息:

在这里插入图片描述

索引的查看

1、show index from 表名;
2、show keys from 表名;
3、desc 表名;

索引的删除

1、drop index 索引名 on tablename;

2、修改表结构:
alter table 表名 drop index 索引名;

数据库中数据信息在底层实际上是存储在 InnoDB 中的:
在这里插入图片描述

而(InnoDB)索引实际上是采用 数据结构中 B+ 树结构来实现的

(注意区分B 树、B+树的区别)

在这里插入图片描述
在这里插入图片描述

聚簇索引 & 非聚簇索引

mysql 数据库中,InnoDB 存储引擎默认使用聚簇索引,MyISAM 存储引擎默认使用非聚簇索引

聚簇索引

索引数据与用户数据存放在一起;
一张表中只有一个聚簇索引;
聚簇索引数据与索引物理存储顺序是一致的,且有序存储;
在表中除了聚簇索引还有辅助索引,而聚簇索引类型中,辅助索引的叶子节点中存放的并不是用户数据,而是聚簇索引的键值;

在这里插入图片描述
在这里插入图片描述

非聚簇索引

索引数据与用户数据分离存储;
非聚簇索引是索引与数据分离,索引的叶子节点中存储的是数据的物理地址,因此索引的顺序与数据在物理磁盘的实际存储顺序不一定一致;
非聚簇索引的辅助索引,与主键索引并无区别,都是叶子节点中存放地址;

在这里插入图片描述

在这里插入图片描述

索引创建原则

1、比较频繁作为查询条件的字段应该创建索引;
2、唯一性太差的字段不适合创建索引,即使被频繁查询;
3、频繁修改的字段不适合创建索引------维护成本高;
4、索引并不是越多越好,因此不会作为查询条件的字段就不要创建索引。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值