一秒了解Mysql索引

一、什么是索引

索引就好比一本书的目录,能够提高数据的查询效率

二、索引底层

InnoDB引擎中索引的底层数据结构是B+tree

三、索引的分类

1.主键索引

主键索引和主键约束本质上是一样的,只是在不同的场景的不同叫法

创建主键索引(以创建一个学生表为例)

CREATE TABLE student(
	id INT(3) PRIMARY KEY auto_increment,//添加主键索引且值递增
	username VARCHAR(32),
	password VARCHAR(32),
	name VARCHAR(32),
	age INT(3),
  sex VARCHAR(32)
)

2.唯一索引

该字段可以是多个null,但值不能重复

创建唯一索引(将上面学生表的username添加成唯一索引)

ALTER TABLE student ADD UNIQUE(username);//添加唯一索引

3.普通索引

最基本的索引,没有什么限制

创建普通索引(将name添加为普通索引)

ALTER TABLE student ADD INDEX (name);//添加普通索引

删除普通索引

DROP INDEX name ON student;//删除普通索引

4.全文索引

全文索引(FULLTEXT)仅可以适用于MyISAM引擎的数据表,(Mysql5.5版本不支持)

四、索引的优缺点

优点:查询效率快

缺点:更新数据时,会改变索引的数据结构

当批量更新数据时,这个缺点就会被放大,解决方案:先删除索引,再更新数据,更新完后再添加索引


五、索引分类

索引分为两类

一类是聚簇索引(主键索引),一类是非聚簇索引(除主键索引外)

区别:聚簇索引的叶子结点存放的是数据

           非聚簇索引的叶子结点存放的是主键

六、索引失效问题

索引何时失效?

1.当SQL语句发送给Mysql时,Mysql会自动判断是走索引快还是不走索引快

2.模糊查询可能导致索引失效

3.联合索引可能导致索引失效

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值