iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL定位并优化慢查询sql的方法是什么
  • 773
分享到

MySQL定位并优化慢查询sql的方法是什么

2023-06-22 05:06:41 773人浏览 薄情痞子
摘要

本篇内容介绍了“MySQL定位并优化慢查询sql的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.如何定位并优化慢查询sql  

本篇内容介绍了“MySQL定位并优化慢查询sql的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

    1.如何定位并优化慢查询sql   

    a.根据慢日志定位慢查询sql

    SHOW VARIABLES LIKE '%query%'  查询慢日志相关信息

    MySQL定位并优化慢查询sql的方法是什么 

    slow_query_log 默认是off关闭的,使用时,需要改为on 打开      

    slow_query_log_file 记录的是慢日志的记录文件

    long_query_time 默认是10S,每次执行的sql达到这个时长,就会被记录     

    SHOW STATUS LIKE '%slow_queries%' 查看慢查询状态

    MySQL定位并优化慢查询sql的方法是什么

    Slow_queries 记录的是慢查询数量 当有一条sql执行一次比较慢时,这个vlue就是1 (记录的是本次会话的慢sql条数)

    注意:

    如何打开慢查询  :   SET GLOBAL slow_query_log = ON;

    将默认时间改为1S:   SET GLOBAL long_query_time = 1;

    (设置完需要重新连接数据库,PS:仅在这里改的话,当再次重启数据库服务时,所有设置又会自动恢复成默认值,永久改变需去my.ini中改)

    b.使用explain等工具分析sql

    在要执行的sql前加上explain 例如:EXPLAIN SELECT menu_name FROM t_sys_menu ORDER BY menu_id DESC;

    MySQL定位并优化慢查询sql的方法是什么

    接着看explain的关键字段

    type:

    MySQL定位并优化慢查询sql的方法是什么

    如果发现type的值是最后两个中的其中一个时,证明语句需要优化了。

    extra:

    MySQL定位并优化慢查询sql的方法是什么

    c.修改sql或者尽量让sql走索引

    Mysql查询优化器会根据具体情况自己判断走哪个索引,不一定是走主键(explain中的key可以看到走的哪个key)具体情况根据具体情况来定,当你要强制执行走某一个key时:

    在查询的最后加上 force index(primary); 强制走主键的

    2.联合索引的最左匹配原则的成因

    简单说下什么是最左匹配原则

    顾名思义:最左优先,以最左边的为起点任何连续的索引都能匹配上。同时遇到范围查询(>、<、between、like)就会停止匹配。

    例如:b = 2 如果建立(a,b)顺序的索引,是匹配不到(a,b)索引的;但是如果查询条件是a = 1 and b = 2或者a=1(又或者是b = 2 and b = 1)就可以,因为优化器会自动调整a,b的顺序。再比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,因为c字段是一个范围查询,它之后的字段会停止匹配。

    最左匹配原则的原理

    最左匹配原则都是针对联合索引来说的,所以我们有必要了解一下联合索引的原理。了解了联合索引,那么为什么会有最左匹配原则这种说法也就理解了。

    我们都知道索引的底层是一颗B+树,那么联合索引当然还是一颗B+树,只不过联合索引的健值数量不是一个,而是多个。构建一颗B+树只能根据一个值来构建,因此数据库依据联合索引最左的字段来构建B+树。

    例子:假如创建一个(a,b)的联合索引,那么它的索引树是这样的

    MySQL定位并优化慢查询sql的方法是什么

    可以看到a的值是有顺序的,1,1,2,2,3,3,而b的值是没有顺序的1,2,1,4,1,2。所以b = 2这种查询条件没有办法利用索引,因为联合索引首先是按a排序的,b是无序的。

    同时我们还可以发现在a值相等的情况下,b值又是按顺序排列的,但是这种顺序是相对的。所以最左匹配原则遇上范围查询就会停止,剩下的字段都无法使用索引。例如a = 1 and b = 2 a,b字段都可以使用索引,因为在a值确定的情况下b是相对有序的,而a>1and b=2,a字段可以匹配上索引,但b值不可以,因为a的值是一个范围,在这个范围中b是无序的。

    MySQL定位并优化慢查询sql的方法是什么

    成因:

    MySQL定位并优化慢查询sql的方法是什么

    当通过(col3,col2)这样的联合索引去查找时,可以看到也是一个B+树的结构向下查找,若直接通过col2去查找,无法直接查找到34、77。也就用不到这个联合索引了。

    3.索引是建立得越多越好吗

    数据量小的表不需要建立索引,建立会增加额外的索引开销。

    数据变更需要维护索引,因此更多的索引意味着更多的维护成本。

    更多的索引意味着也需要更多的空间。

    mysql定位并优化慢查询sql的方法是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

    您可能感兴趣的文档:

    --结束END--

    本文标题: MySQL定位并优化慢查询sql的方法是什么

    本文链接: https://www.lsjlt.com/news/302687.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • MySQL定位并优化慢查询sql的方法是什么
      本篇内容介绍了“MySQL定位并优化慢查询sql的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.如何定位并优化慢查询sql  ...
      99+
      2023-06-22
    • MySQL定位并优化慢查询sql的详细实例
      目录1.如何定位并优化慢查询sql   a.根据慢日志定位慢查询sqlb.使用explain等工具分析sqlc.修改sql或者尽量让sql走索引2.联合索引的最左匹配原则的成因简单说...
      99+
      2024-04-02
    • SQL慢查询优化的方法是什么
      本篇内容主要讲解“SQL慢查询优化的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL慢查询优化的方法是什么”吧!1.背景页面无法正确获取数据,经排查原来是接口调用超时,而最后发现是...
      99+
      2023-06-26
    • mysql慢查询优化的方法是什么
      MySQL慢查询优化的方法有以下几种:1. 使用索引:索引可以大大提高查询的速度。需要根据查询语句的特点选择合适的列进行索引,避免全...
      99+
      2023-08-31
      mysql
    • MySQL-如何定位慢查询SQL以及优化
      如何定位慢查询SQL以及优化 慢查询日志记录慢SQLexplain查看分析SQL执行计划profile分析执行耗时Optimizer Trace分析详情确定问题采用响应措施 慢查询日志记录...
      99+
      2023-09-12
      sql 数据库 java
    • mysql位运算查询优化的方法是什么
      在MySQL中,位运算查询优化的方法可以通过使用位运算来查询符合特定条件的数据。以下是一些优化位运算查询的方法: 使用位运算符:...
      99+
      2024-04-02
    • mysql优化查询的方法是什么
      MySQL 优化查询的方法包括但不限于以下几点: 使用合适的索引:在查询中使用适当的索引可以大大提高查询性能。确保表中的字段有适当...
      99+
      2024-04-23
      mysql
    • Mysql慢查询优化方法及优化原则
      1、日期大小的比较,传到xml中的日期格式要符合'yyyy-MM-dd',这样才能走索引,如:'yyyy'改为'yyyy-MM-dd','yyyy-MM'改为'yyyy-MM-dd'【这样MYSQL会转换为...
      99+
      2024-04-02
    • mysql 简单定位慢查询并分析SQL执行效率
      实际的日常开发工作中可能会遇到某个新功能在测试时需要很久才返回结果,这时就应该分析是不是慢查询导致的,如果确实有慢查询,就需要来学习怎么找到慢查询和怎么分析 SQL 执行效率? 定位慢 SQL 有如下两种解决方案: 查看慢查询日志确定已经执...
      99+
      2023-09-14
      dba sql mysql
    • oracle多表查询sql优化的方法是什么
      在Oracle中进行多表查询SQL优化可以通过以下方法来实现: 使用合适的连接方式:在多表查询时,选择合适的连接方式(如INNE...
      99+
      2024-04-09
      oracle
    • sql server卡慢问题定位与排查的方法是什么
      这篇“sql server卡慢问题定位与排查的方法是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下...
      99+
      2023-03-08
      sqlserver
    • mongodb定位查询的方法是什么
      在MongoDB中,可以使用`$near`操作符来进行定位查询。`$near`操作符可以用于在一个给定地理位置附近找到最接近的文档。...
      99+
      2023-09-06
      mongodb
    • MySQL数据查询优化的方法是什么
      MySQL数据查询优化的方法主要包括以下几种: 使用合适的索引:在表的字段上创建索引可以大大提高查询的性能。确保在经常用于查询的字...
      99+
      2024-04-09
      MySQL
    • mysql分页查询优化的方法是什么
      MySQL分页查询的优化方法包括:1. 使用索引:在进行分页查询时,使用合适的索引可以大大提高查询性能。可以创建适当的索引,以确保查...
      99+
      2023-10-08
      mysql
    • mysql查询性能优化的方法是什么
      非常抱歉,由于您没有提供文章标题,我无法为您生成一篇高质量的文章。请您提供文章标题,我将尽快为您生成一篇优质的文章。...
      99+
      2024-05-14
    • mysql回表查询优化的方法是什么
      MySQL回表查询是指在使用索引扫描后,仍需要通过主键再次访问表数据的操作。这种情况通常发生在需要查询的列不在索引中,或者是使用覆盖...
      99+
      2024-04-09
      mysql
    • MySQL 慢查询日志 使用方法浅析 日志定位与优化技巧
      目录 前言 1、如何开启使用慢查询日志? 1.1 开启慢查询日志 1.2 设置慢查询阈值 1.3 确定慢查询日志的文件名和路径     1.3.1 查询MySQL数据目录     1.3.2 查询慢查询日志文件名      1.3.3 查询...
      99+
      2023-09-17
      mysql 数据库 sql
    • mysql慢日志查询的方法是什么
      要查询MySQL慢日志,可以使用以下方法: 登录到MySQL数据库管理系统。 运行以下SQL查询语句来查看慢查询日志的参数设...
      99+
      2024-03-14
      mysql
    • mysql数据库查询优化的方法是什么
      MySQL数据库查询优化的方法包括以下几个方面: 创建索引:通过在查询涉及的列上创建索引,可以大大提高查询的性能。可以使用CREA...
      99+
      2024-04-02
    • MySQL SQL优化方法是什么
      这篇文章主要讲解了“MySQL SQL优化方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL SQL优化方法是什么”吧!slowlog里查到...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作