题目

假设某个表有一个联合索引(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=x and c5=x order by c2,c3

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

创建表,并创建相应索引,插入数

对于A:

c1=x and c2=x and c4>x and c3=x  <==等价==> c1=x and c2=x and c3=x and c4>x

因此 c1,c2,c3,c4都能用上. 如下:

对于B:

select * from t4 where c1=1 and c2=2 and c4=3 order by c3

c1 ,c2索引用上了,在c2用到索引的基础上,c3是排好序的,因此不用额外排序.

而c4没发挥作用.

如果用c5排序,因为c5不是索引,所以,要额外用到filesort进行排序

对于 C:

只用到c1索引,因为group by c3,c2的顺序无法利用c2,c3索引

D语句:

C1确定的基础上,c2是有序的,C2之下C3是有序的,因此c2,c3发挥的排序的作用.

因此,没用到filesort

E:

这一句等价与 elect * from t4 where c1=1 and c2=3 and c5=2 order by c3;

因为c2的值既是固定的,参与排序时并不考虑

转载于:https://www.cnblogs.com/meidang/p/7461985.html

数据库优化 - 多列索引经典题目相关推荐

  1. mysql优化-----多列索引的左前缀规则

    索引优化策略1:索引类型1.1B-tree索引 关注的是:Btree索引的左前缀匹配规则,索引在排序和分组上发挥的作用.注:名叫btree索引,大的方面看都用的二叉树.平衡树.但具体的实现上,各引擎稍 ...

  2. Android复习07【创建数据库、insert()插入数据、查看数据库、根据列索引获取参数值、根据列名-返回索引、增删改查数据、数据分页、修改表结构、Room框架】

    2020-04-09-星期四-第八周 目   录 创建数据库 insert()方法 查看数据库(Save as保存) 菜鸟教程---SQLite数据库 根据 列索引 获取 参数值 列比较多---根据列 ...

  3. 数据库-优化-SQL及索引优化

    SQL及索引优化 mysql安装与卸载(linux在线安装与卸载) 数据库版本选择 1.查看数据库的版本 select @@version; 2.准备数据 网址:https://dev.mysql.c ...

  4. Sql与数据库优化的几条核心建议

    本文目录: 为什么要进行数据库优化 MySql数据库优化 SQL及索引优化 MySQL慢查日志分析工具 通过explain查询分析SQL的执行计划 具体慢查询优化的案例 1. 为什么要进行数据库优化 ...

  5. MySQL索引介绍,普通索引,全文索引,空间索引,多列索引使用原则,建立索引常用的规则

    转自:https://blog.csdn.net/tomorrow_fine/article/details/78337735 1.MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可 ...

  6. 【转】矩阵十大经典题目

    经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转     这里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转(两种情况), ...

  7. mysql 改表面_MySQL_解析MySQL数据库性能优化的六大技巧,数据库表表面上存在索引和防 - phpStudy...

    解析MySQL数据库性能优化的六大技巧 数据库表表面上存在索引和防错机制,然而一个简单的查询就会耗费很长时间.Web应用程序或许在开发环境中运行良好,但在产品环境中表现同样糟糕.如果你是个数据库管理员 ...

  8. 数据库查询性能优化之利器—索引(二)

    数据库查询性能优化之利器-索引(二) 在前面一篇文章中谈到适当地建立索引能够大幅度地提升SQL语句查询速度,然而并不是在什么情况下都适合建立索引,下面来谈一下什么情况下适合建立索引.建立什么样的索引以 ...

  9. mysql单列索引和多列索引_浅谈MySQL索引优化

    索引基础知识总结及常见索引优化手段 一.索引简介 什么是索引? MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构. 可以简单理解为"排好序的快速查找数据 ...

最新文章

  1. linux服务器调用端口超时,Linux服务器可以ping,但是telnet端口超时,网站wget超时,访问超时的解决办法...
  2. Android AsyncTask分析
  3. 【PC工具】录屏软件,必须好用无广告!
  4. 浅谈Java解决鸡兔同笼问题的思路
  5. OpenGL实现3D立体显示
  6. uni-app 发送form-data参数的请求方式传值给后台
  7. 【Python CheckiO 题解】Between Markers
  8. org.apache.jasper.JasperException: Unable to compile class for JSP:
  9. python标准库之logging
  10. django连接mysql_Django 连接数据库
  11. 我的日常Vim使用--凌波微步
  12. MiniUtilityFramework 九 CText和TEXT
  13. CSS 固定定位 position fixed
  14. python大众点评霸王餐_划重点:如何报名大众点评霸王餐?怎么做才能中奖?
  15. 8cm等于多少像素_厘米与像素一张图片,要打印尺寸为10.8厘米*17厘米,图片要编 爱问知识人...
  16. 台式电脑显示无法连接服务器,台式电脑无法连接网络怎么办
  17. Java中常见的5种WEB服务器介绍以及性能配置要点总结
  18. proxychains DNS解析失败问题
  19. 如何使用微PE工具箱制作U盘PE
  20. RS码-LDPC码-喷泉码之比较

热门文章

  1. anaconda安装python视频_怎么安装anaconda?
  2. matlab 参数识别,[转载]自编最小二乘法的Matlab参数辨识程序(含实例)
  3. java图片资源存放_Java编程中图片文件放哪
  4. linux 空硬盘,linux – dd在整个磁盘上,但不想要空的部分
  5. ENSP配置 实例一 不同VLAN间通信
  6. vue移动端通过px动态计算图片宽高_vue图片宽高自适应_移动web图片高度自适应的解决方案...
  7. Java 输出当前目录
  8. java 8 lambda 申明_2019-02-03——Java8 Lambda
  9. lingo的初步使用(集)
  10. java中的single_解析java泛型(一)