MySQL索引

按作用分类:

1.主键索引:不解释,都知道

2.普通索引:没有特殊限制,允许重复的值

3.唯一索引:不允许有重复的值,速度比普通索引略快

4.全文索引:用作全文搜索匹配,但基本用不上,只能索引英文单词,而且操作代价很大

按数据存储结构分类:

1.聚簇索引

定义:按照每张表的主键构造一颗B+树,同时叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。这个特性决定了索引组织表中数据也是索引的一部分,每张表只能拥有一个聚簇索引。

2.非聚簇索引

定义:该索引中索引的逻辑顺序与磁盘上行的物理存储顺序不同,一个表中可以拥有多个非聚集索引。

聚簇索引以外的索引都是非聚集索引,细分为普通索引、唯一索引、全文索引,它们也被称为二级索引。

例子:

有一张职工表emp,表设计如下:

è¿éåå¾çæè¿°
创建了两个单列索引:idx_ename、idx_deptno

è¿éåå¾çæè¿°
执行select * from emp where ename='RgfgEv' and deptno='102'

用explain进行分析只用到了idx_ename一个索引。

è¿éåå¾çæè¿°

(当有多个单列索引时,mysql只能用到其中那个它认为最有效率的单列索引)

创建一个组合索引:idx_name_deptno

è¿éåå¾çæè¿°

分别执行如下sql:

select * from emp where ename='JFWTBd' and deptno='107';
è¿éåå¾çæè¿°


索引起作用

select * from emp where deptno='107' and ename='JFWTBd'
è¿éåå¾çæè¿°

索引起作用

select * from emp where ename='JFWTBd'
è¿éåå¾çæè¿°


索引起作用

select * from emp where deptno='107'
è¿éåå¾çæè¿°

索引失效

这就是mysql遵循的最左前缀原则。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值