Mysql索引(学习自用)

[复制链接]
发表于 2025-11-4 23:39:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
目次

一、索引概述
 优缺点
二、索引结构 
1、索引数据结构
2、索引支持结构
3、B树
4、B+树
5、hash索引
6、为啥采取B+树索引
三、索引分类 
四、索引语法
五、索引性能分析
5.1检察实行频率
5.2慢查询日志日志
5.3profiling
5.4explain
六、索引利用规则
6.1验证索引服从
6.2最左前缀法则
6.3范围查询
 6.4索引失效的情况
6.4.1索引列运算
6.4.2字符串不加引号
6.4.3暗昧查询
 6.4.4or毗连的条件
6.4.5数据分布情况
6.4.5null情况
6.5索引发起、忽略、欺凌
6.6覆盖索引
6.7前缀索引
6.8单列索引和团结索引
七、索引计划原则


一、索引概述


 优缺点


二、索引结构 

1、索引数据结构


2、索引支持结构


3、B树



4、B+树

 


5、hash索引




6、为啥采取B+树索引



三、索引分类 




四、索引语法



五、索引性能分析

5.1检察实行频率



5.2慢查询日志日志

检察慢查询日志日志是否开启:
  1. show variables like 'slow_query_log';
复制代码


5.3profiling

检察profiling开启状态:
  1. select @@profiling;
复制代码




 

5.4explain





六、索引利用规则

6.1验证索引服从

用实行的秒数表明即可

6.2最左前缀法则


注意:跟团结索引的次序没有关系,只要最左前缀存在即可。
如
  1. explain select * from tb_user where profession='软件工程' and age=31 and status='0';
复制代码
和
  1. explain select * from tb_user where age=31 and status='0' and profession='软件工程';
复制代码
是一样的效果。
6.3范围查询


注意:只管利用>= 或<=来用范围查询,如许范围查询右侧的列索引不会失效。
 6.4索引失效的情况

6.4.1索引列运算


6.4.2字符串不加引号


6.4.3暗昧查询

头部暗昧匹配索引会失效


 6.4.4or毗连的条件

有索引列 or 没索引列  整条语句的索引都失效。
若要办理则需都加上索引。

6.4.5数据分布情况


6.4.5null情况

当条件存在is not null大概is null情况时,不能正确判定是否利用索引了。要详细看数据内容。
6.5索引发起、忽略、欺凌


注意:
1)use只是发起mysql利用这种索引,并不是欺凌让mysql必须利用,详细利用哪个索引还要根据mysql哪个索引的实行服从高来举行选择。
2)ignore是忽略掉该索引。
3)force是欺凌mysql利用该索引。
6.6覆盖索引




6.7前缀索引




6.8单列索引和团结索引





七、索引计划原则






回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表