一文读懂Mysql 优化之order by【百万乃至千万数据查询优化推荐】

一文读懂Mysql 优化之order by

  • 驱动表与被驱动表概念
  • 复合索引的三大原则
  • 排序方式对比
  • 索引排序
  • 驱动表排序
  • 临时表排序
  • 排序算法

驱动表与被驱动表概念

  • 当使用left join时,左表是驱动表,右表是被驱动表
  • 当使用right join时,右表是驱动表,左表是被驱动表
  • 当使用join(inner join) / where时,mysql会选择数据量比较小的表作为驱动表,大表作为被驱动表
    可以使用explain执行计划,查询结果的第一行即为驱动表

复合索引的三大原则

假如索引有复合索引(a,b,c),复合索引字段顺序 a>b>c ,a为最左侧字段

  • 最左匹配原则,如果查询条件缺失了索引的最左侧列,那么索引不生效
  • 中间不可中断原则,如果中间定义的索引没有在where条件里面体现,那么后面的字段过滤将不会用到索引
  • 范围中断原则,只要使用了范围查询,那么其右侧的索引都无法正常使用
select field from table where b="b" order by b,c  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/5094.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python_day11_pymysql

SQL基础语法回忆 show DATABASES;use world;-- SELECT DATABASES();show TABLES;CREATE TABLE Student(id int,name VARCHAR(10),age int,gender VARCHAR(5) );删除表 # 删除表 DROP TABLE Student;插入操作 insert into student(id) VALUES(1),(2),(3);insert i…

STM32使用高级定时器输出互补pwm波

STM32使用高级定时器输出互补pwm波 前言硬件和软件cubemx新建工程打开Debug模式配置时钟源六大时钟的作用选择Crystal/Ceramic Resonator,即使用外部晶振作为HSE的时钟源。 配置时钟配置高级定时器TIM8和通用定时器TIM3这里大概解释一下配置pwm输出用到的几个参数我…

【解决】 Android Studio Failed to find configured root that contains

问题出现 尝试将拍摄的图像存储至手机自定义的存储空间,不料却一直报错,主要问题是在使用 FileProvider 从文件路径中获取 Uri 时出现异常。 相关代码 报错区域的文件路径相关的代码 主要是在 File imageDir new File(getExternalCacheDir(), “Galler…

【Nginx08】Nginx学习:HTTP核心模块(五)长连接与连接处理

Nginx学习:HTTP核心模块(五)长连接与连接处理 HTTP 基础知识大家掌握的怎么样呀?对于长连接这一块的内容应该也不是什么新鲜东西了吧。毕竟 HTTP1.1 都已经发布这么久了。今天主要来看的就是长连接相关的配置,另外还会…

ylb-接口4投资排行榜

总览: 1、使用Redis存储投资信息 2、Redis常量类 在common模块constants包,创建一个Redis常量类(RedisKey): package com.bjpowernode.common.constants;public class RedisKey {/*投资排行榜*/public static fin…

Qt5.15.2安装

解释一下 Qt 的版本号 比如 5.15.2 是完整的 Qt 版本号,第一个数字 5 是大版本号(major),第二个数字 15 是小版本号(minor),第三个数字 2 是补丁号(patch)。 只要前面两个…

oracle 如何连同空表一起导出成dmp的方法

1、oracle导出dmp文件的时候,经常会出现一些空表,没有一并被导出的情况。 执行sql select alter table ||table_name|| allocate extent; from user_tables where num_rows0 or num_rows is null; 新建一个sql窗口,把查询结果的sql&#…

GSV6201替代方案|CS5466设计资料|CS5466原理图|typec转HDMI_8k方案芯片

GSV6201是一款高性能、低功耗、高性能的,USB Type-C备用模式显示端口1.4至HDMI 2.1转换器。通过集成增强型微控制器,GSV6201创造了一个经济高效的解决方案提供了上市时间优势。显示端口接收机支持高达32.4Gbps(HBR3,4通道&#xf…

go map[string]any 转map[string]string

目录 一 、map[string]any参数转为map[string]string 二 、go 请求参数绑定 gin框架示例 三、 go 中实现接口 四 、go中设计模式策略模式实现 一 、map[string]any参数转为map[string]string 场景:在go中有将map[string]any参数转为map[string]string 其中…

uniapp和uview组件实现下拉触底刷新列表

下面是一个在UniApp中使用uView组件实现下拉触底刷新列表的示例,并使用Axios来请求分页数据列表: 首先,确保你已经在UniApp项目中添加了uView组件库。你可以在项目根目录执行以下命令安装它们: npm install uview-ui或者使用 Hb…

曲师大2023大一新生排位赛-D.Factor题解

D.Factor 题目描述 你有一个集合 ,和具有 个正整数的数组 . 最初,集合 为空(不包含任一元素)。你将按照以下方式填充集合 : 以此枚举数组 a 中的每个元素。对于数组中的第 i 个元素 ,生成 ​ 的因子集合 ​。如果…

使用对象解构赋值,将对象的某些属性赋值给另一个对象

在处理接口返回的数据时,我需要将接口返回的数据(对象)的某些属性用另一个对象进行接收,学习对象解构赋值之前,我一直使用的都是最笨的方法: this.formData.projectId res.data.projectId this.formData.…

idea中常用的快捷键

快捷键: 1.快速生成main方法 main/psvm public static void main(String[] args) {} 2.快速复制当前行的代码: ctrld 3.快速捕获异常: altctrlt 4.快速打印结果: sout/soutv System.out.println(s); System.out.println("s " s); 5.自动生成对象的返回值…

【运维工程师学习六】LAM部署搭建个人Discuz论坛

【运维工程师学习六】LAM部署搭建个人Discuz论坛 1、先卸载Mariadb再安装Mysql2、MySQL官网rpm包下载3、在rpm包路径下安装 YUM Repo 文件4、更新软件仓库本地数据库信息5、开始部署——php的安装6、搜索yum包7、开始部署——配置apache以支持php(1)配置…

GitHub上整理的一些实用的工具

1. Visual Studio Code 简称VScode,是一个轻量且强大的跨平台开源代码编辑器(IDE),支持Windows,OS X和Linux。内置JavaScript、TypeScript和Node.js支持,而且拥有丰富的插件生态系统,可通过安装…

关于GDP调试

说出一些常见的指令 break(或缩写为b):设置断点,例如 b main 在 main 函数处设置断点run(或缩写为r):运行程序。step(或缩写为s):单步执行程序,进…

SylixOS下SSH和SFTP连接

简要 基于网络的连接(telnet,ftp)方便高效,但其是基于明文的通信,容易被窃取、篡改和攻击,存在网络安全问题,尤其在进行远程访问时,穿过复杂未知的公网环境非常危险,为此…

快速替换chatgpt-web项目的access token的脚本

问题背景,由于GPT access token 会定期失效,更换服务器的项目的access token较为繁琐,特写一脚本协助完成更换access token。 使用方法: # token从https://chat.openai.com/api/auth/session获取 ./replace_token.sh token脚本内…

ELK-日志服务【es-安装使用】

目录 【1】安装-配置elasticsearch(01、02、03相同) 端口 【2】安装-配置-启动-Kibana 【3】浏览器访问测试(10.0.0.21:5601) 【4】使用kibana创建、更新、删除es索引、文档 【5】组es集群(投票选举机制&#xf…

代码随想录一刷day49

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、力扣121. 买卖股票的最佳时机二、力扣122.买卖股票的最佳时机II 前言 一、力扣121. 买卖股票的最佳时机 class Solution {public int maxProfit(int[] pr…