mysql 优化之开启慢查询并分析原因

2023-11-05

   第一步.开启mysql慢查询

方式一:修改配置文件

Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下。

Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下

在 my.ini 增加几行:

[mysqlld]
long_query_time=2

#5.0、5.1等版本配置如下选项
log-slow-queries="mysql_slow_query.log"
#5.5及以上版本配置如下选项
slow-query-log=On
slow_query_log_file="mysql_slow_query.log"

log-query-not-using-indexes

     第一句使用来定义查过多少秒的查询算是慢查询,我这里定义的是2秒

第二句使用来定义慢查询日志的路径(因为是windows,所以不牵涉权限问题)

第三句就是记录下没有使用索引的query

第二步:查看关于慢查询的状态

方式二:通过MySQL数据库开启慢查询

上文的配置需要重启mysql server进程mysqld才会生效。但是很多时候,尤其是产品运营环境,不希望每次修改都需要重新启动mysql服务器,也希望能在某些特定时间记 录。MySQL5.1给我们提供了更为灵活的运行时控制,使得你不必重新启动mysql服务器,也能选择性地记录或者不记录某些slow queries。

MySQL5.1中,提供了全局变量slow_query_log、slow_query_log_file可以灵活地控制enable/disable慢查询。同时可以通过long_query_time设置时间
#//启用slow query记录
#注意:设置了slow_query_log全局变量, log_slow_queries也会隐性地跟着改变
mysql>set global slow_query_log=ON

不幸运的是,在MySQL5.0并没有提供类似的全局变量来灵活控制,但是我们可以通过将long_query_time设置得足够大来避免记录某些查询语句。比如
mysql>set global long_query_time = 3600;

mysql>set global log_querise_not_using_indexes = ON;

MySQL5.0, 不关服务的情况下,希望不记录日志的办法是将日志文件成为/dev/null的符号链接(symbolic link)。注意:你只需要在改变后运行FLUSH LOGS以确定MYSQL释放当前的日志文件描述符,重新把日志记录到/dev/null

和MySQL5.0不同,MySQL5.1可以在运行时改变日记行为,将日志记录到数据库表中。只要将mysql全局变量log_output设置为 TABLE即可。MySQL会将日志分别记录到表mysql.gengera_log和mysql.slow_log二张表中。但是,我们推荐将日志记录 在日记文件中。
mysql> show variables like ‘log_output’\G
Variable_name: log_output
Value: FILE

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mysql 优化之开启慢查询并分析原因 的相关文章

  • 需要有关使用 PHP 在 mysql 数据库中插入逗号分隔数据的帮助

    数据库表中已有的演示数据 INSERT INTO csvtbl ID SKU Product Name Model Make Year From Year To VALUES 1 C2AZ 3B584 AR Power Steering P
  • PHP 中的异步数据库/服务调用:Gearman 与 pthreads

    在我们的 LAMP 站点上 我们遇到一些服务必须多次调用数据库才能提取数据的问题 通常在 PHP 中完成此操作的方式 至少我的经验 是串行的 这显然是低效的 我们可以通过使用缓存和聚合一些查询来缓解一些低效率的问题 但在某些情况下我们仍然需
  • 如何使用 PHP 从 MySQL 查询中按升序对值进行排序?

    我使用以下 PHP 脚本从 MySQL 表中获取和更改数据 并将结果打印在 HTML 表中 我希望按升序对数据进行排序 utilization percentage变量 它是由创建的 total client time total avai
  • 在 MySQL 中分割逗号分隔值

    我正在尝试将字符串中以逗号分隔的 值拆分为多列 样本数据 COL1 COL2 COL3 000002 000003 000042 09 31 51 007 004 007 预期输出 Pno Cno Sno 000002 09 007 000
  • 如何将 php Web 应用程序转换为桌面应用程序并保留数据库 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我们有一个用 PHP 开发的 Web 应用程序 但大多数客户并没有一直连接到互联网 那么 有没有办法将应用程序转换为桌面应用程序 以便
  • Sql:计算随时间的增长

    我几周前发布了这个问题 但我认为我没有清楚地提出这个问题 因为我得到的答案不是我想要的 我认为最好重新开始 我正在尝试查询数据库以检索一段时间内唯一条目的数量 数据看起来像这样 Day UserID 1 A 1 B 2 B 3 A 4 B
  • Laravel Sum 列数据库 Eloquent

    尝试获取我的一个表中 int 字段的总和应该非常容易 不幸的是 事实并非如此 因为无论我使用 Laravel MySQL 还是 Excel 我都会得到不同的结果 Laravel 5 4 给了我20506 Table sum field na
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • SQL Server 相当于 MySQL 的 USING

    在 MySQL 中 当您连接不同表中具有相同名称的列时 可以在连接中使用关键字 USING 例如 这些查询产生相同的结果 SELECT FROM user INNER JOIN perm USING uid SELECT FROM user
  • Laravel Group By 和 Order By 不起作用

    我尝试制作一个Laravel 5 8项目 项目中的数据是这样的 id purch name prcvalue 1 10234 Nabila 100 2 10234 Nadeera 450 3 10234 Nabila 540 4 10234
  • 高效插入和更新时检查唯一性

    我的员工表中有 2 列 每列值必须是唯一的 staff code staff name staff id staff code staff name 1 MGT Management 2 IT IT staff 当向表中插入或更新项目时 我
  • 如何解决 MySQL innodb 在 TRUNCATE TABLE 上“等待表元数据锁”?

    在 GitLab CI 服务器中运行包含数百个应用程序单元测试的测试套件 运行 10 次测试后 不知怎的 它总是卡在等待 TRUNCATE TABLE 上的表元数据锁上 这是一个拆卸步骤 我知道SHOW ENGINE INNODB STAT
  • INNER JOIN 可用作 SELECT,但不能用作 DELETE [重复]

    这个问题在这里已经有答案了 为什么这个有语法错误 DELETE FROM print mailing request pmr INNER JOIN person p ON p id pmr person AND p email LIKE T
  • 将 mysql LONGTEXT 值转换为 VARCHAR 值?

    我有一个在用户 Facebook 墙上发布的功能 我发送到 facebook 的一件事是我从设置为 LONGTEXT 的 mysql 表中获取的一些文本 如果我将表设置为 LONGTEXT 则文本不会发送到 facebook 但如果我将表设
  • ORDER BY 之后的 GROUP BY

    我需要去做GROUP BY after ORDER BY 我不明白为什么 MySQL 不支持这一点 这是我的代码 SELECT pages id contents id language ORDER BY FIND IN SET langu
  • 在 MySQL 中创建布尔列并将 false 作为默认值?

    我想在 MySQL 中创建一个表boolean默认值为的列false 但它默认接受 NULL 你必须指定0 意思是假 或1 意思是 true 作为默认值 这是一个例子 create table mytable mybool boolean
  • MYSql 前 10 名及其他总计

    我的查询运行良好 但我只需要前 10 个供应商 然后我需要将所有剩余的总计放在 所有其他 行中 如果没有单独的查询 我该如何做到这一点LIMIT 10 18446744073709551615 SELECT VENDOR fullname
  • MySQL 中非空值的计数和分组

    我需要计算按特定 ID 分组的非空 我的意思是至少包含 1 个字符的字符串 行 例如 我的数据可能如下所示 form id mapping 1 value 1 1 1 value 2 2 2 NULL 3 value 3 我想计算每个表单的
  • 创建rest api url以连接mysql数据库

    我想学习如何创建一个rest api url 以便我可以使用该url获取信息并将信息发布到我的mysql数据库中 谷歌搜索了很多并阅读了各种文章 但没有找到任何精确的内容可以学习 所有内容均以 about api 开头 以已创建的其余 ur
  • 未知的表引擎“InnoDB”

    最近 我发现如果我有好的硬件 我可以最大限度地提高 mysql 的性能 由于我一直在使用 InnoDB 所以我在 my ini 中添加了额外的配置 以下是新添加的配置 innodb data file path ibdata1 10M au

随机推荐

  • ajax和jquery什么关系,jquery和ajax的关系是什么样的?

    一直以来我们都知道jquery能够调用ajax 就好像理所当然一样 小伙伴们知道它们到底是什么关系吗 本篇文章就一起来了解下 Jquery是一种JavaScript框架 而Ajax Asynchronous JavaScript and X
  • (二) Ubuntu安装新版tensorflow以及目标检测API

    https github com tensorflow models blob master object detection g3doc installation md installation 安装指南 Installation Dep
  • Failed to create the java virtual machine完全解决办法

    转 http www cr173 com html 45240 1 html 一直用eclipse开发java 突然有这么一天 无法启动了 splash窗口显示 Failed to create the Java Virtual Machi
  • Android屏幕适配之--自定义像素的缩放比例来实现屏幕适配

    在Android的适配中 可以采用自定义布局的形式 来通过计算像素的缩放比例来实现适配 大致思路就是 通过拿到设备实际的长宽像素值来除以参考设备的长宽值 得到这一个比例值 在设置控件的长宽值得时候 拿到开发者指定的长宽值乘以这个比例值 就能
  • 软件测试-用例篇

    目录 1 测试用例带给我们的便捷之处 2 测试用例标准 3 测试用例的基本要素 4 设计测试用例的方法 4 1 根据需求去设计测试用例 4 2 软件需求 5 具体的设计测试用例方法 黑盒测试设计测试用例的方法 5 1等价类 5 2 边界值法
  • 【满分】【华为OD机试真题2023 JAVA&JS】基站维修工程师

    华为OD机试真题 2023年度机试题库全覆盖 刷题指南点这里 基站维修工程师 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 小王是一名基站维护工程师 负责某区域的基站维护 某地方有n个基站 1
  • HTTP 报文详解

    文章目录 HTTP 请求报文 HTTP 响应报文 请求方法 HTTP headers 通用头域 Cache Control 头域 Date 头域 Pragma 头域 Connection 头域 请求消息 请求头 响应消息 响应头 实体消息
  • harbor搭建-主从复制

    harbor搭建 文章目录 harbor搭建 1 Harbor概述 2 Harbor架构 3 Harbor部署 3 1 hostname配置 3 2 dns配置 3 3 yum源配置 3 4 docker安装和启动 3 5 harbor安装
  • C++调用opencv提取视频关键帧

    欢迎加QQ群309798848交流C C linux Qt 音视频 OpenCV 用的灰度帧差法 编译平台 VS2017 x64 include
  • 11月20日 创建自己的环境任务,使用Pawn环境检测来检测周围的环境,让AI动作更顺滑(动画混合空

    创建自己的环境任务 我们需要让AI在我们的周围进行随机移动 创建Actor 点击Override快速创建函数并添加节点 修改 运行后发现距离我们太近了 修改AI判断的距离和角度 AI角色没有移动 将之前的Fun Location删除即可 继
  • LNMP平台

    LNMP概述 LNMP平台就是Linux Ngnix MySQL PHP的组合架构 需要Linux服务器 MySQL 数据库 PHP解析环境 MySQL安装配置 为了与Nginx PHP环境保持一致 此处选择采用源代码编译的方式安装MySQ
  • 单片机的毕业设计题目项目汇总 - 100例

    文章目录 1前言 2 STM32 毕设课题 3 如何选题 3 1 不要给自己挖坑 3 2 难度把控 3 3 如何命名题目 4 最后 1前言 更新单片机嵌入式选题后 不少学弟学妹催学长更新STM32和C51选题系列 感谢大家的认可 来啦 以下
  • Unity Addressables 热更新 基础

    Unity Addressables 热更新 基础 Addressables 基础解析 Addressable Asset Settings 可寻址资源设置 Profile 配置文件 Diagnostics 诊断工具 Catalog 目录
  • 如何编写CSDN博客-CSDN编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 用它写博客 将会带来全新的体验哦 Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列
  • Mybatis注解方式下处理实体类与数据库表列名不一致

    注解方式下 来源 黑马程序员 mybatis数据库列名与实体类列明不一致 比如 实体类 数据库 查出来的结果不能很好的使用User类的toString方法封装 username属性名和数据库列名一致 能封装好 其他的属性都不一致 解决1 s
  • 左程云视频算法笔记03 选择排序

    题目二 选择排序 比如一个数组有10个数字 它们的下标 是 0 到 10 1 在3下标位置处有个数字为2 它与0下标位置处的数字对比 如果小于 则放到0下标位置处 然后减减 接着在4下标位置处有个数字5 它与1下标位置处对比 如果小于 调换
  • 互联网的组成

    互联网从工作方式上可以划分为以下两大块 1 边缘部分 由所有连接在互联网上的主机组成 这部分是用户直接使用的 用来进行通信和资源共享 2 核心部分 由大量网络和连接这些网络的路由器 这部分是为边缘部分提供服务的 连通性和交换 1 互联网的边
  • 基于FFmpeg+rtsp读取摄像头实时图像

    项目介绍 前端时间做了一个项目用qt 编写软件获取海康摄像头rtsp视频流 实现实时显示 当时采用的是VLC Qt播放RTSP流这种方式 参考 基于libVLC的视频播放器之二 使用VLC Qt播放RTSP流 草上爬的博客 CSDN博客 l
  • 学习Typora使用

    TYPORA 使用 1 标题 标题一 标题二 标题三 标题四 2 字体 1 粗体 HELLOword hello word 2 斜体 hello word 3 删除线 hello word 3 引用 即使在小的帆也能远航 gt 空格 这里用
  • mysql 优化之开启慢查询并分析原因

    第一步 开启mysql慢查询 方式一 修改配置文件 Windows Windows 的配置文件为 my ini 一般在 MySQL 的安装目录下或者 c Windows 下 Linux Linux 的配置文件为 my cnf 一般在 etc