MySql索引小姿势

文章介绍了数据库索引的两种主要类型——Hash索引和B+Tree索引,Hash索引查询速度快但不支持范围查询,而B+Tree支持有序操作。同时,列举了导致索引失效的多种情况,如类型转换、模糊查询、函数运算等,并提到了索引的分类,包括主键、唯一、常规和全文索引。

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

1.数据库索引常用数据结构有两种:Hash索引与B+Tree索引

Hash索引查询速度高于B+Tree,但不支持范围查询,通常检索需要次数两到三次,是通过字段key进 行hash计算,插入对应hash槽中,如果计算值相等,会形成单链表方式存储

B+Tree索引在B-Tree结构上进行优化,所有key经过排序后,非叶子节点不存储data,只存储索 引,所有值存储在叶子节点,叶子节点包含所有索引字段,形成双向链表

2.查询时什么情况下会导致索引失效?

1.使用等值查询字符串没有带分号(会导致隐式类型转换)

2.模糊匹配查询的百分号在前面会导致索引失效

3.联合索引没有遵循最左前缀法则,或者跳过中间字段会导致后面索引失效,不是全部失效(联合索引失效)

4.使用函数运算失效

5.使用范围查询大于号会失效,尽量使用大于等于,小于,小于等于

6.使用or连接条件,如果一侧有索引一侧没有索引会导致索引失效

7.如果MySql评估走全表扫描比走索引快会优先选择全表扫描,使索引失效

3.索引分类
分类
含义
特点
关键字

主键索引

针对表中主键创建索引

默认创建,只能有一个

PRIMARY

唯一索引

避免同一个表中某数据列中值重复

可以有多个

UNIQUE

常规索引

快速定位特定数据

可以有多个

全文索引

全文索引查找的是文本中的关键字,而不是比较索引中的值

可以有多个

FULLTEXT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值