MySQL访问方法

访问方法

const

一般认为通过主键或者唯一二级索引列来定位一条记录的访问方法定义为:const。const表示常数级别,代价是可以忽略不计的。

不过这种 const 访问方法只能在主键列或者唯一二级索引列和一个常数进行等值比较时才 有效,如果主键或者唯一二级索引是由多个列构成的话,索引中的每一个列都需要与常数进行等值比较,这个 const 访问方法才有效(这是因为只有该索引中全部列都采用等值比较才可以定位唯一的一条记录)。

执行过程:

聚簇索引(主键索引)

唯一二级索引:

ref

一般把搜索条件为二级索引列与常数等值比较,采用二级索引来执行查询的访问方法叫:ref

  • 当二级索引列值为null的情况:

    不论是普通的二级索引,还是唯一二级索引,它们的索引列对包含 NULL 值的数量并不限制,所以我们采用 key IS NULL 这种形式的搜索条件最多只能使用 ref 的访问方法,而不是 const 的访问方法。

  • 对于某个包含多个索引列的二级索引来说,只要是最左边的连续索引列是与常数的等值比较就可能采用 ref 的访问方法,比方说下边这几个查询:

 SELECT * FROM single_table WHERE key_part1 = 'god like'; 
 SELECT * FROM single_table WHERE key_part1 = 'god like' AND key_part2 = 'legendary';
 SELECT * FROM single_table WHERE key_part1 = 'god like' AND key_part2 = 'legendary' AND key_part3 = 'penta kill'; 

但是如果最左边的连续索引列并不全部是等值比较的话,它的访问方法就不能称为 ref 了,比方说这样:

 
 SELECT * FROM single_table WHERE key_part1 = 'god like' AND key_part2 > 'legendary';

执行过程:

ref_or_null

当使用二级索引而不是全表扫描的方式执行该查询时,这种类型的查询使用的访问方法就称为 ref_or_null

range

一般把利用索引进行范围匹配的访问方法称为:range。这里所说的索引可以是聚簇索引也可以是二级索引。

index

一般认为采用遍历二级索引记录的访问方式称为:index。

all

一般认为使用全表扫描执行查询的访问方式称之为: all 。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值