数据库优化 - 多列索引经典题目
题目
假设某个表有一个联合索引(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
数据库优化 - 多列索引经典题目相关推荐
- mysql优化-----多列索引的左前缀规则
索引优化策略1:索引类型1.1B-tree索引 关注的是:Btree索引的左前缀匹配规则,索引在排序和分组上发挥的作用.注:名叫btree索引,大的方面看都用的二叉树.平衡树.但具体的实现上,各引擎稍 ...
- Android复习07【创建数据库、insert()插入数据、查看数据库、根据列索引获取参数值、根据列名-返回索引、增删改查数据、数据分页、修改表结构、Room框架】
2020-04-09-星期四-第八周 目 录 创建数据库 insert()方法 查看数据库(Save as保存) 菜鸟教程---SQLite数据库 根据 列索引 获取 参数值 列比较多---根据列 ...
- 数据库-优化-SQL及索引优化
SQL及索引优化 mysql安装与卸载(linux在线安装与卸载) 数据库版本选择 1.查看数据库的版本 select @@version; 2.准备数据 网址:https://dev.mysql.c ...
- Sql与数据库优化的几条核心建议
本文目录: 为什么要进行数据库优化 MySql数据库优化 SQL及索引优化 MySQL慢查日志分析工具 通过explain查询分析SQL的执行计划 具体慢查询优化的案例 1. 为什么要进行数据库优化 ...
- MySQL索引介绍,普通索引,全文索引,空间索引,多列索引使用原则,建立索引常用的规则
转自:https://blog.csdn.net/tomorrow_fine/article/details/78337735 1.MySQL在创建数据表的时候创建索引 在MySQL中创建表的时候,可 ...
- 【转】矩阵十大经典题目
经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转 这里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转(两种情况), ...
- mysql 改表面_MySQL_解析MySQL数据库性能优化的六大技巧,数据库表表面上存在索引和防 - phpStudy...
解析MySQL数据库性能优化的六大技巧 数据库表表面上存在索引和防错机制,然而一个简单的查询就会耗费很长时间.Web应用程序或许在开发环境中运行良好,但在产品环境中表现同样糟糕.如果你是个数据库管理员 ...
- 数据库查询性能优化之利器—索引(二)
数据库查询性能优化之利器-索引(二) 在前面一篇文章中谈到适当地建立索引能够大幅度地提升SQL语句查询速度,然而并不是在什么情况下都适合建立索引,下面来谈一下什么情况下适合建立索引.建立什么样的索引以 ...
- mysql单列索引和多列索引_浅谈MySQL索引优化
索引基础知识总结及常见索引优化手段 一.索引简介 什么是索引? MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构. 可以简单理解为"排好序的快速查找数据 ...
最新文章
- linux服务器调用端口超时,Linux服务器可以ping,但是telnet端口超时,网站wget超时,访问超时的解决办法...
- Android AsyncTask分析
- 【PC工具】录屏软件,必须好用无广告!
- 浅谈Java解决鸡兔同笼问题的思路
- OpenGL实现3D立体显示
- uni-app 发送form-data参数的请求方式传值给后台
- 【Python CheckiO 题解】Between Markers
- org.apache.jasper.JasperException: Unable to compile class for JSP:
- python标准库之logging
- django连接mysql_Django 连接数据库
- 我的日常Vim使用--凌波微步
- MiniUtilityFramework 九 CText和TEXT
- CSS 固定定位 position fixed
- python大众点评霸王餐_划重点:如何报名大众点评霸王餐?怎么做才能中奖?
- 8cm等于多少像素_厘米与像素一张图片,要打印尺寸为10.8厘米*17厘米,图片要编 爱问知识人...
- 台式电脑显示无法连接服务器,台式电脑无法连接网络怎么办
- Java中常见的5种WEB服务器介绍以及性能配置要点总结
- proxychains DNS解析失败问题
- 如何使用微PE工具箱制作U盘PE
- RS码-LDPC码-喷泉码之比较
热门文章
- anaconda安装python视频_怎么安装anaconda?
- matlab 参数识别,[转载]自编最小二乘法的Matlab参数辨识程序(含实例)
- java图片资源存放_Java编程中图片文件放哪
- linux 空硬盘,linux – dd在整个磁盘上,但不想要空的部分
- ENSP配置 实例一 不同VLAN间通信
- vue移动端通过px动态计算图片宽高_vue图片宽高自适应_移动web图片高度自适应的解决方案...
- Java 输出当前目录
- java 8 lambda 申明_2019-02-03——Java8 Lambda
- lingo的初步使用(集)
- java中的single_解析java泛型(一)