Mysql如何优化慢查询

如何优化慢查询

慢 SQL 的优化,主要从两个方面考虑,SQL 语句本身的优化,以及数据库设计的优化。
在这里插入图片描述

1、避免不必要的列
覆盖索引会导致回表,且增大了IO
2、分页优化
深分页解决方案
使用子查询in
使用连接表 left join
使用游标,只能一页一页的翻
3、索引优化
注意索引失效的场景索引失效
4、jion优化
优化子查询
尽量使用 Join 语句来替代子查询,因为子查询是嵌套查询,而嵌套查询会新创建一张临时表,而临时表的创建与销毁会占用一定的系统资源以及花费一定的时间,同时对于返回结果集比较大的子查询,其对查询性能的影响更大
小表驱动大表
适当增加冗余字段
避免使用 JOIN 关联太多的表
5、排序优化
利用索引扫描做排序
6、union优化
MySQL 处理 union 的策略是先创建临时表,然后将各个查询结果填充到临时表中最后再来做查询,很多优化策略在 union 查询中都会失效,因为它无法利用索引
最好手工将 where、limit 等子句下推到 union 的各个子查询中,以便优化器可以充分利用这些条件进行优化
此外,除非确实需要服务器去重,一定要使用 union all,如果不加 all 关键字,MySQL 会给临时表加上 distinct 选项,这会导致对整个临时表做唯一性检查,代价很高。

链接

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

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

相关文章

计算机毕业设计-----SSH计算机等级考试报名系统

项目介绍 该项目分为前后台,分为管理员与普通用户两种角色,前台为普通用户登录,后台为管理员登录; 管理员角色包含以下功能: 管理员登录,修改个人密码,院系信息管理,注册用户管理,留…

JAVA数组以及小练习

目录 数组的概述和静态初始化 数组的地址值和元素访问 数组的遍历 数组的动态初始化 数组练习 数组的概述和静态初始化 package 数组;public class array1 {public static void main(String[] args){//格式//静态初始化//数据类型 [] 数组名 new 数组类型[]{元素1&#xf…

java期末复习题

1.任何一个Java程序都默认引入一个包,这个包的名字是________________。 正确答案:java.lang Java程序默认引入的包是java.lang包。这个包是Java语言的核心,它提供了Java中的基础类,包括基本Object类、Class类、String类、基本类…

【模块系列】STM32BMP280

前言 最进想练习下I2C的应用,手上好有BMP280也没用过,就看着机翻手册和原版手册,开始嘎嘎写库函数了。库的命名应该还1是比较规范了吧,就是手册对于最终值的计算方式很迷糊,所以现在也不能保证有可靠性啊,大…

开发运营微信小游戏怎么才能盈利呢?

微信小游戏凭借其便捷性和广泛的用户基础,成为了一个极具吸引力的市场。但要在这个竞争激烈的领域中获得成功并非易事。下面我们将探讨开发和运营微信小游戏的盈利策略。 了解市场:定位与研究的重要性 成功的游戏开发始于深入的市场研究和精准定位。开…

JVM 8 调优指南:如何进行JVM调优,JVM调优参数

这篇文章将详细介绍如何进行JVM 8调优,包括JVM 8调优参数及其应用。此外,我将提供12个实用的代码示例,每个示例都会结合JVM启动参数和Java代码。 本文已收录于,我的技术网站 ddkk.com,有大厂完整面经,工作…

在Centos7上配置NTP时间同步

问题描述 在Centos7机器设置向局域网内的NTP服务器进行时间同步。前提是该机器已经安装了ntpd服务,一般在安装Centos7的时候,系统都会自带这一服务。 解决方案 以root权限登录,按照下面的步骤操作: 检查另一时间同步软件chron…

磁盘直通卡/阵列卡讲解

服务器SAS卡 ① 华为SR120 (LSI 2308 6Gb SAS直通卡),适合数据安全等级不高或 更换简单 硬盘即插即用 ② 华为SR320 (LSI 2208 6Gb SAS阵列卡 带512M缓存),适合对数据安全等级要求高或追求磁盘性能的客户 推荐上阵列卡 ③ 华为SR130 (LSI 3008 12Gb SAS直通卡),适合数据安全等…

【Spring 篇】深入探索:Spring集成Web环境的奇妙世界

嗨,亲爱的小白们!欢迎来到这篇有关Spring集成Web环境的博客。如果你曾对如何在Spring中构建强大的Web应用程序感到好奇,那么这里将为你揭示Web开发的神秘面纱。我们将用情感丰富、语句通顺的文字,以小白友好的方式,一探…

Mac M2芯片pycharm配置conda python环境

Mac M2芯片pycharm配置conda python环境 详细步骤如下 1、pycharm界面右上方的小齿轮⚙️,进入Setting…状态 2、进入setting界面后,选择左边栏的Project-->python Interpreter,然后选择右边的Add Interpreter 3、进入Add Interpreter后&#xff0c…

竞赛保研 基于深度学的图像修复 图像补全

1 前言 🔥 优质竞赛项目系列,今天要分享的是 基于深度学的图像修复 图像补全 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🧿 更多资料, 项目分享: https://gitee.com/dancheng-se…

内网穿透远程访问

内网穿透远程访问 参考文章:https://blog.csdn.net/qyj19920704/article/details/135528078#comments_30865140 cpolar概述 使用了 cpolar 生成的隧道,其公网地址是随机生成的。 优势在于建立速度快,可以立即使用。然而,它的缺…

selenium模拟浏览器查询导出参考文献

通过使用Selenium和BeautifulSoup,在CNKI网站上,以"知识图谱"为关键词,通过自动化工具在搜索页面提取相关文章信息。点击清楚并全选进行文献导出,随后从导出页面和管理导出的页面提取参考文献。 浏览器及WebDriver下载…

postgresql迁移到mysql

1.工具方法:Navicat Premium16 2. 手工方法: 迁移流程 下面是将 Postgresql 数据库迁移到 MySQL 的步骤流程: 步骤描述1. 创建MySQL表结构在MySQL中创建与Postgresql中的表结构相同的表2. 导出Postgresql数据将Postgresql中的数据导出为SQ…

Java:多线程问题小结(一)

Java多线程是什么 Java提供的并发(同时、独立)处理多个任务的机制。多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信 更轻量级。依我的理解,Java多线程完全就是为了提高CPU的利用率。Java的线…

评估指标中的RMSE,MAE,MAPE分别表示什么,取值范围一般多大,优缺点有哪些?

评价指标 1. RMSE(Root Mean Square Error):均方根误差2. MAE(Mean Absolute Error):平均绝对误差,也叫均方误差3. MAPE(Mean Absolute Percentage Error):平…

linux contes 安装bbr及防火墙设置

这z里写自定义目录标题 一、开启BBR 1、检测系统版本 uname -r //查看内核版本bbr需要内核大于4.92、升级 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm yum --enablerepoel…

第九讲 单片机驱动彩色液晶屏 控制RA8889软件:显存操作

单片机驱动TFT彩色液晶屏系列讲座 目录 第一讲 单片机最小系统STM32F103C6T6通过RA8889驱动彩色液晶屏播放视频 第二讲 单片机最小系统STM32F103C6T6控制RA8889驱动彩色液晶屏硬件框架 第三讲 单片机驱动彩色液晶屏 控制RA8889软件:如何初始化 第四讲 单片机驱动彩色液晶屏 控…

深度学习10种attention机制(快收藏)

1️⃣标准注意力机制: Soft Attention:一种灵活的注意力分配方式,允许模型在序列的不同部分分配不同程度的关注。 Hard Attention:一种严格的注意力分配方式,模型只关注序列中的特定部分。 2️⃣自注意力(…

kafka入门(六):日志分段(LogSegment)

日志分段(LogSegment) Kafka的一个 主题可以分为多个分区。 一个分区可以有一至多个副本,每个副本对应一个日志文件。 每个日志文件对应一个至多个日志分段(LogSegment)。 每个日志分段还可以细分为索引文件、日志存储…