A:用了c1,c2,c3,c4(mysql没你傻,它知道在不影响语义的情况下换下顺序)

B:用了c1,c2,c3,而c4没有(在c3后就中断了)

C:用到了c1

如果是order by c2,c3 则用到了c1,而c2,c3用来排序了:

关于group by语句的过程:

例如下面的例子(未建立cat_id索引的情况下)就用到了临时表:

D:用了c1,但用上了c2,c3排序(因为Extra没有Using filesort),因为很巧,正好是按照c2,c3排序的。

而c2,c3调换顺序就不同了:用了c1,但c3,c2是用的filesort!

E:用上了c1,c2,没有用到filesort,说明order by c2,c3也发挥了作用

而,order by c2,c3倒过来,依然没用到filesort。因为c2已经等常量b了,还有啥好排序的,就只是order by c3了:

如果把c2='b'去掉,就有filesort排序了:

MySQL优化之BTree索引使用规则

从一道题开始分析:

假设某个表有一个联合索引(c1,c2,c3,c4)一下——只能使用该联合索引的c1,c2,c3部分

A where c1=x and c2=x and c4>x and c3=x

B where c1=x and c2=x and c4=x order by c3

C where c1=x and c4= x group by c3,c2

D where c1=? and c5=? order by c2,c3

E where c1=? and c2=? and c5=? order by c2,c3

有谁知道下面A-E能否可以使用索引!!为什么?

OK;开始

创建表:

insert into t

values

('a1','a2','a3','a4','a5'),

('b1','b2','b3','b4','b5');

插入数据:

insert into t

values

('a1','a2','a3','a4','a5'),

('b1','b2','b3','b4','b5');

添加索引:

alter table t add index c1234(c1,c2,c3,c4);

对第一种情况:说明c1,c2,c3,c4被使用

稍作改变:

使用group by 一般先生成临时文件,在进行排序

order by 哪?同上面类似啦

稍微改变一下,分析:知道原理都很容易啦!

上面问题答案是多少?反正我是不知道!

总结规律可得:

标签:面试题,索引,c3,c2,c1,优化,order,c4

来源: https://blog.51cto.com/5660061/2374613

mysql索引优化笔试题_索引优化策略面试题相关推荐

  1. MySQL-索引优化篇(4)_索引的维护

    文章目录 生猛干货 官方文档 删除重复索引 删除冗余索引 检查重复和删除的索引 pt-duplicate-key-checker 查找未被使用的索引 更新索引统计信息 索引碎片整理 搞定MySQL 生 ...

  2. mysql优化慕课网_性能优化之MySQL优化(慕课)

    MySQL数据库优化 1-1MySQL优化简介 数据库优化的目的 避免出现页面访问错误 由于数据库连接timeout产生5XX错误 由于慢查询造成页面无法加载 由于阻塞造成数据无法提交 增加数据库的稳 ...

  3. 简述一下索引的匹配原则_索引最左匹配原则

    写在前面:我在上大学的时候就听说过数据库的最左匹配原则,当时是通过各大博客论坛了解的,但是这些博客的局限性在于它们对最左匹配原则的描述就像一些数学定义一样,往往都是列出123点,满足这123点就能匹配 ...

  4. python 遗传算法优化bp神经网络_遗传算法优化BP神经网络

    CODE: %清空环境变量 clc clear %%样本输入 input_train=xlsread('50组输入样本_训练.xlsx'); output_train=xlsread('50组期望输出 ...

  5. mysql的电话面试题_以往百度电话面试题

    1.一个概率题:54张扑克牌,除去两张大小王剩下52张扑克牌.问红桃A和黑桃A同时被一个人拿到的概率是多少?C(4,1)*C(50,11)/C(52,13)???假设分为四个人拿,每人拿13张.2.给 ...

  6. ckks方案优化最好的_网站优化关键词怎么选?好的关键词长什么样?

    网站关键词的优化影响着网站的排名,也就是说关键词它是整个网站建设过程中最基本,也是最重要的一步.然而关键词优化并非一件轻而易举的事,要考虑诸多因素,才可以让所优化的关键词带动网站的发展,那么如何才能找 ...

  7. python人工智能面试题爱奇艺面试题_爱奇艺面试试题是什么?爱奇艺怎么面试的?...

    动漫社区运营 职位描述: 1.负责社区的日常运营,管理监控社区运营数据; 2.深入分析社区用户需求.行为路径.交互等,对各项运营指标负责; 3.定期复盘,推进策略迭代以及运营方法改进,沉淀有效运营模式 ...

  8. 华为js面试题_华为C语言面试题最优思路及答案分享

    原标题:华为C语言面试题最优思路及答案分享 华为校招15道C语言面试题分享 用预处理指令#define 声明一个常数, 用以表明1年中有多少秒 (忽略闰年问题) 一 题 #defineSECONDS_ ...

  9. 中级java面试题_最新中级Java面试题及答案

    1.Java的HashMap是如何工作的? HashMap是一个针对数据结构的键值,每个键都会有相应的值,关键是识别这样的值. HashMap基于hashing原理,我们通过put()和get()方法 ...

最新文章

  1. RDKit | 化合物描述符向量化及部分结构检索
  2. 【金三银四】java是世界上最好的语言
  3. mysql主从架构搭建_MySQL主从架构搭建
  4. dedecms标签使用
  5. IOS之AFNetworking,SDWebImage,Kingfisher,Alamofire,FMDB框架的使用
  6. java学习(44):引用参数传递
  7. canvas游戏篇 - 贪吃蛇
  8. Android开发笔记(九十五)自定义Drawable
  9. opencv快速下载
  10. 学习计算机英语的重要性
  11. 2011年分形艺术国际大赛比赛规则
  12. 数据控制—完整性约束
  13. 简单逆向26(c++函数修饰名,md5,动态调试,算法逆向)
  14. pandas 公益学习 综合练习与学习总结
  15. 【C++版Opencv】【Ubuntu】VScode配置Opencv
  16. python怎么输出百分数_Python 如何输出百分比
  17. ABAC相关标准在数据服务中的应用——XACML和NGAC的比较
  18. 第9天 用css画一个五边形和一个六边形
  19. 你不得不看的图文并茂的MQTT协议通信过程!!!
  20. 设置windows10 的默认应用

热门文章

  1. Composer的Autoload源码实现2——注册与运行
  2. Gradient Boosting Decision Tree学习
  3. Linux lsof命令使用小结
  4. TableView 截图
  5. asp无组件上传图片 动态保存文件名 upload.inc逐句翻译
  6. 从些知道公钥密钥了,呜呜,激动ing~
  7. python_程序格式_缩进_行注释_段注释---python工作笔记012
  8. C++_结构体的定义和使用_结构体数组---C++语言工作笔记025
  9. 大数据_MapperReduce_Hbase的优化_高可用 预分区_防止数据倾斜_JAVAAPI创建预分区---Hbase工作笔记0026
  10. k8s核心技术-Service概述_Service的三种类型_ClusterIP只能内部访问_NodePort可以外网访问_LoadBalancer公有云---K8S_Google工作笔记0032