Mysql 的查询过慢如何排查以及优化

server/2024/10/18 8:32:53/

1.慢查询:

        (1).查看慢查询的日志文件有没有打开show variables like ‘slow_query_log’;
        (2).因为默认是没有开启的所以一般我们需要手动的去开启:set global slow_query_log=on;
        (3).查看慢查询的时间:show variables like ‘long_query_time’;
        (4).explain查看分析SQL执行计划:explain select * from log
        (5).通过explain分析具体是那一条sql的问题:explain 具体的sql语句

2.优化方式:
        (1).学会使用explain关键字分析查询语句的执行计划
        (2).在MySQL中,可以使用EXPLAIN关键字来分析查询语句的执行计划,以帮助优化查询性能。EXPLAIN语句返回一个描述查询执行计划的结果集,包括了查询的操作顺序、使用的索引、表之间的连接方式等信息。
        (3).是否索引失效了
        (4).是否进行了全表扫描
        (5).是否有select * 这种字段
        (6).表的结构是否存在问题
        (7).是否存在联表查询表的数量过多出现笛卡尔积这种

3.sql优化

        (1).插入数据

        insert : 批量插入、手动控制事务、主键顺序插入

        大批量插入:load data local infile.

        (2).主键优化:主键长度尽量短、顺序插入

              推荐使用 :AUTO_INCREMENT 

              不推荐:UUID

        (3).order by优化

        using index : 直接通过索引返回数据,性能高

        using filesort : 需要将返回的结果在排序缓冲区排序

        (4).group by 优化 : 索引,多字段分组满足最左前缀法则

        (5).limit 优化 :覆盖索引+子查询

       (6).count 优化 : 性能:count(字段)<count(主键 id) <count(1)<count(*)

             count(1)与count(*)相差不大。

        (7).update 优化:尽量根据主键/索引字段进行数据更新

        


http://www.ppmy.cn/server/116952.html

相关文章

【BUG报错已解决】`ERROR: Failed building wheel for jupyter-nbextensions-configurator`

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言一、问题描述1.1 报错示例1.2 报错分析1.3 解决思路 二、解决方法2.1 方法一&#xff1a;安装编译工具和依赖项2.…

【LeetCode】2552. 统计上升四元组

给你一个长度为 n 下标从 0 开始的整数数组 nums &#xff0c;它包含 1 到 n 的所有数字&#xff0c;请你返回上升四元组的数目。 如果一个四元组 (i, j, k, l) 满足以下条件&#xff0c;我们称它是上升的&#xff1a; 0 < i < j < k < l < n 且 nums[i] <…

从GreaterWMS学习仓库管理系统

前言 客户并不知道&#xff08;确切地&#xff09;他们需要什么&#xff1f; 需要通过需求分析工具和技术&#xff0c;利用宽进严出的需求池&#xff0c;需求验证使用原型测试&#xff0c;场景分析&#xff0c;专家评审&#xff0c;交叉检查等手段&#xff0c;经过充分验证的需…

停车场小程序如何实现分账功能?

智慧停车平台为什么迫切需要分账功能的原因&#xff0c;通过清结算系统提供的服务商分账功能&#xff0c;可以有效提高交易环节的分账效率。平台方只需要在后台配置好与各服务商、业主等多方分账规则&#xff0c;待交易订单形成后&#xff0c;清结算系统会自动化分账&#xff0…

springboot 单独新建一个文件实时写数据,当文件大于100M时按照日期时间做文件名进行归档

要在 Spring Boot 中实现实时写入数据到文件&#xff0c;并在文件大小大于 100MB 时按照日期时间归档&#xff0c;主要步骤如下&#xff1a; 文件写入功能&#xff1a;设置一个日志文件&#xff0c;实时写入数据。文件大小检测&#xff1a;在写入数据时检测文件大小&#xff0…

基于HTML+JS+CSS+Echarts实现的设备环境监测可视化平台前端整套模板

效果图 基于HTMLJSCSSEcharts实现的设备环境监测可视化平台前端整套模板。可用过修改源码快速完成需求。 源码结构 下载地址

【Hadoop|MapReduce篇】Hadoop序列化概述

1. 什么是序列化 序列化就是把内存中的对象&#xff0c;转换成字节序列&#xff08;或其他数据传输协议&#xff09;以便于存储到磁盘&#xff08;持久化&#xff09;和网络传输。 反序列化就是将收到的字节序列&#xff08;或其他数据传输协议&#xff09;或者磁盘的持久化数…

Linux系统使用Docker安装DockerUI并实现远程管理本地容器无需公网IP

文章目录 前言1. 安装部署DockerUI2. 安装cpolar内网穿透3. 配置DockerUI公网访问地址4. 公网远程访问DockerUI5. 固定DockerUI公网地址 前言 DockerUI是一个docker容器镜像的可视化图形化管理工具。DockerUI可以用来轻松构建、管理和维护docker环境。它是完全开源且免费的。基…