mysql索引

本文探讨了在实际业务中如何选择不同的索引类型,如完整索引、前缀索引、倒序索引和hash索引,以适应不同查询需求,同时考虑了空间效率和查询性能。重点介绍了自增主键的优势和索引下推在MySQL 5.6以后的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引

1.给字符串加索引

1.1 直接创建完整索引。缺点:占空间

1.2 创建前缀索引,节省空间。缺点:会增加查询扫描次数,且不能使用索引覆盖。

1.3 倒序存储,再创建前缀索引,可以绕过字符串本身前缀的区分度不够的问题。缺点:只能等值查询,不能范围查询,并且倒序函数 reverse()函数会额外消耗cpu资源。

1.4 创建hash字段索引,查询性能稳定。缺点:有额外的存储(多了一个字段)和计算消耗(crc函数),不支持范围查询。

以上,实际业务中,根据不同需求,选择合适的方式。

自增主键 满足了递增插入 每次插入一条新纪录,都是追加操作,都不涉及到挪动其他记录,也不会触发叶子节点的分裂 底层来看 不会造成页分裂

主键长度越小 ,普通索引的叶子节点就越小,普通索引占用的空间也就越小

select * from t where k between 3 and 51

回表优化:覆盖索引;索引下推 5.6及之后 (mysql 5.6引入)
索引下推:在索引遍历过程中,对索引中包含的字段先做判断,直接过滤调不满足条件的记录,减少回表次数

explain中的extra字段里会说明索引使用情况:using index:表示只用到了二级索引,即索引覆盖;Using index condition:表示用到了索引下推;Using where:表示用到了全表扫描;Using intersect(…)、Using union(…)和Using sort_union(…):表示使用到了索引合并。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值