Mysql索引笔记

1、InnoDB

聚簇索引:索引文件和数据文件在一起

主索引的叶子节点直接保存的数据,辅助索引的叶子节点存储的主键值。

支持事务,行级锁,支持B+tree索引,支持fulltext索引,不支持hash索引

2、MyISAM

非聚簇索引:索引文件和数据文件分开存储

主索引和辅助索引的结构完全相同,叶子节点存储数据的物理地址

不支持事务,表级锁,支持B+tree索引,支持fulltext索引,不支持hash索引

3、索引无法命中的情况

 --like '%xx',左侧模糊匹配

select * from table where a like '%xx';

 

--使用函数

select * from table where reverse(a) = 'xxxx';

 

--or,可以用union all改写

 

--类型不一致,如果列是字符类型,传入条件必须用单引号引起来

select * from table where a = 999;

 

--普通索引的不等于不会走索引,如果是主键或者非主键的整数类型则会走索引

select * from table where a != 'xxx';   --不会走索引

select * from table where a != 2;      --会走索引

 

--排序条件是索引列,则select列也必须是索引,否则无法命中

select b from table order by a desc;  --列a所索引,b没有索引,则查询不走索引

如果对主键排序,则会走索引

select * from table order by id desc;

 

--组合索引,最左前缀匹配

如果存在索引(a,b,c)

a和a,b和a,b,c能匹配到索引,其他的不能


--count(1)、count(列)替代count(*)在mysql中没有什么差别

--当某个列的长度比较长时,可以将该列的前n个位建立索引,以减小索引大小。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值