MySQL的Explain的Type中,Rang跟Ref有什么区别?

MySQL的Explain的Type中,Rang跟Ref有什么区别?,第1张

type 中的各个意思| ALL | 全表扫描| index| 索引全扫描| range| 索引范围扫描,常用语<,<=,>=,between等 *** 作| ref| 使用非唯一索引扫描或唯一索引前缀扫描,返回单条记录,常出现在关联查询中| eq_ref | 类似ref,区别在于使用的是唯一索引,使用主键的关联查询| const/system | 单条记录,系统会把匹配行中的其他列作为常数处理,如主键或唯一索引查询| null| MySQL不访问任何表或索引,直接返回结果

type=index,索引全扫描,MySQL遍历整个索引来查询匹配的行:select username from user

type=ref,使用非唯一索引扫描或唯一索引的前缀扫描,返回匹配某个单独值的记录行,例如:select * from user where username = '张三'

个人理解:看你有没有加where条件吧,加了where就要匹配记录行。另外本人也测试了下,如果执行'select username from user where username = '张三'',type依旧为ref,可见一斑。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8619473.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-18
下一篇 2023-04-18

发表评论

登录后才能评论

评论列表(0条)

保存