MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍

Obsidian + Codex 搭建本地知识库:AI 笔记整理与自动化工作流实战 在个人知识管理场景中,Markdown 笔记与 AI 编程工具的结合正成为高效整理信息的新范式。Obsidian 作为本地优先的双链笔记软件,将散落资料转化为结构化的文本文件,而 Codex 作为命令行 AI 智能体,能够在文件目录中直接执行读取、总结、改写的批量任务。这种组合无需高配显卡,也无需复杂后端,即可构建一条从资料收集、智能摘要到内容再创作的轻量级流水线。文章从知识库目录规划、笔记模板设计讲起,逐步演示 Codex 安装、环境变量配置、批量整理与 Python 自动化扩展,并针对代理报错、文件路径 阅读详情

最近有个开发团队抱怨我们平台包含的mysql cluster不行,总是报mysql的”heartbeat Error“,分析了他们收集的日志,没有发现mysql cluster节点之间的网络有问题,倒是发现了一个很有意思的现象,在mysql的slow log里面发现了大量的慢查询,基本上都是要1秒钟以上,很明显这种耗时高的慢查询会影响系统行为,指出这点让开发团队去优化他们的应用,很好奇他们竟然不知道有这些东西可以分析。。。。。。

数据库响应慢问题最多的就是查询了。现在大部分数据库都提供了性能分析的帮助手段。例如Oracle中会帮你直接找出慢的语句,并且提供优化方案。在MySQL中就要自己开启慢日志记录加以分析(记录可以保存在表或者文件中,默认是保存在文件中,我们系统使用的就是默认方式)。

先看看MySQL慢查询日志里面的记录长什么样的:

Time                 Id Command    Argument
# Time: 141010  9:33:57
# User@Host: root[root] @ localhost []  Id:     1
# Query_time: 0.000342  Lock_time: 0.000142 Rows_sent: 3  Rows_examined: 3
use test;
SET timestamp=1412904837;
select * from t;

这个日志应该很好理解了,第一个#记录时间戳,第二个#记录执行命令的用户和地址信息,第三个#记录执行查询的时间、锁的时间、返回行数、被扫描的行数。接着后面记录真正执行的SQL语句。还可以通过以下命令看看cvs存储格式每个字段意义。

SHOW CREATE TABLE mysql.slow_log;

接下来说说如何获取和分析慢日志吧。

查看MySQL慢日志参数

进入启动好的MySQL,执行以下命令

mysql> show variables like '%slow_query%';
+---------------------------+----------------------------------------+
| Variable_name             | Value                                  |
+---------------------------+----------------------------------------+
| slow_query_log            | OFF                                    |
| slow_query_log_file       | /usr/local/mysql/data/cloudlu-slow.log |
+---------------------------+----------------------------------------+
这里告诉我们慢日志的日志存放位置,慢日志是否有开启。

那么什么样的查询需要被日志呢?在MySQL中,没有index的查询以及超过指定时间同时超过指定扫描行数的查询需要记录在慢日志查询里面。

那么它们的参数又是怎么查看的呢?

没有index的查询记录开关

mysql> show global variables like '%indexes%';
+----------------------------------------+-------+
| Variable_name                          | Value |
+----------------------------------------+-------+
| log_queries_not_using_indexes          | OFF   |
| log_throttle_queries_not_using_indexes | 0     |
+----------------------------------------+-------+
第一个参数 表示是否开启记录没有index的查询,第二个 参数用来做日志记录的流量控制,一分钟可以记录多少条,默认0是表示不限制。

超过指定时长的查询开关

mysql> show global variables like '%long_query%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

就一个参数指定超过多少时长的查询需要被记录

超过指定行数的扫描查询开关

mysql> show variables like  '%min_examined_row_limit%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| min_examined_row_limit | 0     |
+------------------------+-------+
1 row in set (0.00 sec)
默认是0,代表不现在扫描行数


设置开启MySQL慢日志参数

进入MySQL,输入以下命令或者在MySQL的启动配置文件里面修改或者给MySQL添加启动参数,进入MySQL后的修改如下:

set global long_query_time=0.1;
set global log_queries_not_using_indexes=on;
set global slow_query_log = on;
这里要斟酌的有2点,第一是超过什么时长的日志是有问题的,这个由系统需求来决定。第二是没有使用indexes的日志每分钟要记录多少条,要防止日志太多对性能产生影响。

下篇:MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化

Note: MySQL还有2个slow log的参数(log_slow_slave_statements 和 log_slow_admin_statements),大家可以参考MySQL slow Query log官方文档链接

MySql的慢查询(慢日志) 慢查询日志,就是查询花费大量时间的日志,是指mysql记录所有执行超过参数设定的时间阈值的SQL语句的日志,以帮助开发者分析和优化数据库查询性能。默认情况下,慢查询日志是关闭的,要使用慢查询日志功能,首先要开启慢查询日志功能。 阅读详情

相关推荐

Graylog采集MySQL慢日志实战

在完整的日志系统中,数据库的慢日志是采集中必不可少的一部分,当数据库开启mysql慢日志记录时,研发人员可以通过graylog-sidecar采集到的慢日志进行查看分析,更好的优化mysql语句,提高效率。

菜鸟运维升级之路 3052

mysql慢查询及优化(看这篇就够了!!!)

mysql定位慢查询的方式,以及使用explan分析sql语句是否走索引,和mysql语句的优化,索引失效的场景避免

可乐要加冰!!! 8357

【低空经济】森林火情高精度监测与早期预警无人机巡护方案

在全球范围内,森林火灾已成为一个严重的生态和社会问题。它不仅对自然生态系统造成了毁灭性的影响,还对人类的生命财产安全构成了极大的威胁。根据国际森林发展组织的统计,全球每年因森林火灾造成的经济损失高达数百亿美元,甚至在某些年份,火灾损失占到某些国家国民经济总量的相当一部分。因此,开展高效的森林火情监测与早期预警工作显得尤为重要。随着科技的发展,无人机作为新兴的监测工具,以其高效、灵活和经济的特点在森林火灾监测领域展现出了巨大的潜力。

2502_92579126的博客 1212

mysql慢查询

1 概念 MySQL的慢查询,全名是慢查询日志,是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阀值的语句。 具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。 long_query_time的默认值为10,意思是记录运行10秒以上的语句。 默认情况下,MySQL数据库并不启动慢查询日志,需要手动来设置这个参数。 当然,如果不...

云深海阔专栏 1295

【技能---ubuntu20.04更换国内镜像源】

安装好ubuntu20.04后,在下载软件等安装包的时候,速度特别的慢,为此就想着更换一下镜像源,以此来增加下载的速度!!!下面是换源的具体流程!!!提示:以下是本篇文章正文内容,下面案例可供参考以上到这里就更换完软件源了,如有不足之处,请大家斧正!!!

fyc300的博客 1万+

STM32F4_DHT11数字温湿度传感器

开机的时候先检测是否有DHT11存在,如果没有,则提示错误。DHT11和DS18B20相同,传感器输出的都是未编码的二进制数字。本节我们将利用STM32F4来读取DHT11的温湿度传感器,获取环境的温度和湿度值。因此:温湿度的读取方式就是整数部分的二进制转换成十进制放在整数部分;小数部分的二进制转换成十进制放在小数部分。DHT11和MCU的一次通讯时间最大3ms,主机连续向DHT11采样的间隔建议不小于100ms。DHT11是广州奥松有限公司生产的一款温湿度一体化的数字传感器。数据分小数部分和整数部分。

light_2025的博客 3432

MySQL优化—工欲善其事,必先利其器(2)

上一篇文章简单介绍了下EXPLAIN的用法,今天主要介绍以下几点内容: 慢查询日志 打开慢查询日志 保存慢查询日志到表中 慢查询日志分析 Percona Toolkit介绍 安装 pt-query-digest pt-index-usage pt-query-advisor SHOW PROFILE performance_schema   慢查询日志 ...

weixin_33756418的博客 359

100kHz手持LCR表设计:高频阻抗测量与校准实战解析

阻抗测量是电子元件测试的基础,LCR表通过施加正弦激励并分析电压电流的幅值与相位,即可获取电容、电感、电阻的等效参数。在开关电源、无线充电等高频应用场景中,元件在100kHz下的ESR和阻抗特性尤为关键,传统10kHz手持仪表难以满足需求。本文从自动平衡桥原理出发,探讨如何将台式电桥的核心能力浓缩至手持设备,重点剖析高频寄生参数抑制、模拟链路设计、数字相敏检波算法及开路短路校准方法。通过实测数据验证,在100kHz频率下基本精度可达0.5%以内,为维修现场、产线抽检及硬件调试提供了可携带的精密测量方案。全文

weixin_33910191的博客 398

MySQL 5.6 记录 SQL 语句与慢查询

环境: MySQL 5.6.16 如果需要记录 MySQL 的查询语句,需要在配置文件(Linux 下为 my.cnf,Windows 下为 my.ini)中添加配置: general_log = ON general_log_file = D:/Data/log/sql.log general_log = ON 表示开启日志记录, general_log_file 为...

weixin_33817333的博客 201

什么是论文的创新点?公式化描述算是创新点吗?

写科研论文时,挑战之一就是如何让你的工作“脱颖而出”,也就是要有创新性。不管实验多么精确、推导多么复杂,若没有真正的创新,论文很可能会被拒。关于如何创新问题上,我最近在看刘雪峰老师的《科技论文写作指南》,看到了很多关于写作的新论述,在这里和大家进行分享。

加百力 的技术博客 1926

C#海康威视摄像头控制,将IntPtr转换成Bitmap图片

C#通过skd控制海康威视摄像头,获取bitmap格式图片

ReflexMechanism的博客 6586

mysql 5.6.30 开启慢查询日志

mysql版本: [root@localhost app]# mysql -V mysql  Ver 14.14 Distrib 5.6.30, for Linux (x86_64) using  EditLine wrapper 开启方法有两种: 1,修改配置文件(需重启mysqld服务): [root@localhost app]# cat /etc/my.cnf [m

烂笔头 4608

Linux磁盘扩容实战:用parted命令无损扩展/data分区(附常见报错解决方案)

本文详细介绍了在Linux生产环境中使用parted命令对已挂载的/data分区进行在线磁盘扩容的完整实战流程。通过风险评估、状态检查、parted工具深度解析及实战演练,指导用户安全完成动态扩容,并提供了常见报错如'Partition is being used'、MBR 2TB限制等的解决方案,确保业务不中断、数据不丢失。

weixin_29207439的博客 297

mysql5.6 开启查询慢日志_MySQL5.6 怎样优化慢查询的SQL语句 -- 慢日志介绍

近期有个开发团队抱怨我们平台包括的mysql cluster不行,总是报mysql的”heartbeat Error“。分析了他们收集的日志。没有发现mysql cluster节点之间的网络有问题,倒是发现了一个非常有意思的现象,在mysql的slow log里面发现了大量的慢查询。基本上都是要1秒钟以上,非常明显这样的耗时高的慢查询会影响系统行为。指出这点让开发团队去优化他们的应用,非常好奇他们...

weixin_42515313的博客 208

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MySQL5.6 怎样优化慢查询的SQL语句 -- 慢日志介绍

近期有个开发团队抱怨我们平台包括的mysql cluster不行,总是报mysql的”heartbeat Error“。分析了他们收集的日志。没有发现mysql cluster节点之间的网络有问题,倒是发现了一个非常有意思的现象,在mysql的slow log里面发现了大量的慢查询。基本上都是要1秒钟以上,非常明显这样的耗时高的慢查询会影响系统行为。指出这点让开发团队去优化他们的应用,非常...

weixin_33720452的博客 116

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍

转载地址:http://blog.csdn.net/cloud_ll/article/details/39826147 最近有个开发团队抱怨我们平台包含的mysql cluster不行,总是报mysql的”heartbeat Error“,分析了他们收集的日志,没有发现mysql cluster节点之间的网络有问题,倒是发现了一个很有意思的现象,在mysql的slow log里面发现

可口可乐的博客 400

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

面试笔记——MySQL(优化篇:定位慢查询、SQL执行计划、索引、SQL优化)

因为,当在进行分页查询时,如果执行 limit 9000000,10 ,此时需要MySQL排序前9000010 记录,仅仅返回 9000000 - 9000010 的记录,其他记录丢弃,查询排序的代价非常大。是指一个索引包含了查询语句所需的所有列,从而使得查询可以直接从索引中获取所需的数据,而无需回表查询。覆盖索引通常用于查询语句的列与索引列完全匹配的情况。最左前缀法则(或最左前缀匹配)指的是当一个查询包含了多列的复合索引时,查询条件查询从索引的最左前列开始,并且不跳过索引中的列。

Z__XY_的博客 1887

MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化

MySQL5.6 如何优化慢查询的SQL语句 -- SQL查询慢日志分析工具和SQL语句执行计划分析

cloud的技术积累 7029

MySQL优化之慢日志查询

一、慢查询日志概念 二、慢查询日志实践 1. 打开慢查询日志开关slow_query_log 2. 设置合理的、业务可以接受的慢查询时间上限long_query_time 3. 压测执行各种业务 4. 查看慢查询日志 5. 用explain分析这些耗时的SQL语句,从而针对性优化 三、show profiles查看sql具体的运行时间

长期更新自学笔记 1万+

如何定位并优化慢查询Sql

目录 一、整体思路 二、具体部分 1.怎么查询慢日志 2.使用explain分析 3.对sql进行调优 三、mysql查询优化器会使用哪种方式查询 一、整体思路 1.根据慢日志定位慢查询sql 2.使用explain等工具分析sql 3.修改sql或者尽量让sql走索引 二、具体部分 1.怎么查询慢日志 (1)show variables like '%quer%'...

IMUHERO 3612

Mysql慢日志、慢SQL

一般情况下,我们只需开启慢日志记录,配置下阈值时间,其余参数可按默认配置。在 MySQL 中,还可以设置将未走索引的SQL语句记录在慢日志查询文件中(默认为关闭状态)。long_query_time 的默认值为10,意思是运行10秒以上(不含10秒)的语句)。在MySQL中,日志输出格式有支持:FILE(默认),TABLE 两种,可进行组合使用。默认情况下,MySQL数据库没有开启慢查询日志,需要我们手动来设置这个参数。查看执行慢的SQL语句,需要先开启慢查询日志。

爱思考的People 1193
上一篇: Maven实现Web应用集成测试自动化 -- 测试自动化(WebTest Maven Plugin)
下一篇: MySQL5.6 如何优化慢查询的SQL语句 -- SQL优化
开心的D哥
博客等级 码龄22年 63粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值