索引最左列特征的一点认识

索取最左列特性,的秘密都在于顺序排序与存储这个最简单的道理。

 

比如有表tabname上有ABC三个列是这样的。

行号            A       B       C

0                1       A       e

1                2       7       G

2                9       5       7

3                5       0       4

Alter table tabname add index idx1(A,B,C)

用A,B,C三个单列组合成一个辅助索引idx1。这时idx的存放是根据排序规则,比如utf8_unicode_ci,对A列的顺序进行存放。这里是按数字大小顺序由小到大,重新排序A列为1,2,5,9,也就行号0,1,3,2后,建立idx,

 这时如果要查找,a>5,自然就很简单。如果要查a>1 and B<10也可以走这个索引。
但如果要只查b=7,这就跟这个idx1索引的存储方式没有关系了而要直接去走扫描主键索引。

 

另外,为什么索引列上的字符字段不能进行进行 like '%str',而可以进行 like 'str%'这样的查询呢?这也跟存储的顺序有关。

like '%str'这种查询方法,模糊了存储的排序。。而 like 'str%'则是指定了从排序s处开始找。

 

转载于:https://www.cnblogs.com/crossapply/p/5489039.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值