博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
索引最左列特征的一点认识
阅读量:4974 次
发布时间:2019-06-12

本文共 527 字,大约阅读时间需要 1 分钟。

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

 

比如有表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

你可能感兴趣的文章
Linux环境下SolrCloud集群环境搭建关键步骤
查看>>
MongoDB的简单使用
查看>>
prometheus配置
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
python 多进程和多线程的区别
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
c#中从string数组转换到int数组
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>
js05-DOM对象二
查看>>
mariadb BINLOG_FORMAT = STATEMENT 异常
查看>>
C#生成随机数
查看>>
Java回顾之多线程
查看>>
机电行业如何进行信息化建设
查看>>