返回顶部
首页 > 资讯 > 数据库 >如何找出Mysql查询速度慢的SQL语句
  • 719
分享到

如何找出Mysql查询速度慢的SQL语句

2024-04-02 19:04:59 719人浏览 独家记忆
摘要

小编给大家分享一下如何找出Mysql查询速度慢的sql语句,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!启动mysql时加参数-

小编给大家分享一下如何找出Mysql查询速度慢的sql语句,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

启动mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql:

[@more@]

启动Mysql时加参数--log-slow-queries来记录执行时间超过long_query_time秒的sql:
/usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql

--user=mysql --pid-file=/var/run/mysqld/mysqld.pid

--skip-locking --port=3306 --Socket=/var/run/mysqld/mysqld.sock --log-slow-

queries=/var/log/mysql/slow.log

explain来了解SQL执行的状态。

explain select * from wp_postsG;

使用show status like "Handler_read%"; 来了解索引的效果。

Handler_read_key 值高表示索引效果好,Handler_read_rnd_next值高表示索引低效。

用show processlist 查看当前运行状态。

mysql> show processlist;

+-----+-------------+--------------------+

| Id | User | Host | db | Command | Time| State | Info

+-----+-------------+--------------------+

|207|root |192.168.0.20:51718 |mytest | Sleep | 5 | | NULL

|208|root |192.168.0.20:51719 |mytest | Sleep | 5 | | NULL

|220|root |192.168.0.20:51731 |mytest |Query | 84 | Locked |

select bookname,culture,value,type from book where id=001

  先简单说一下各列的含义和用途,第一列,id,不用说了吧,一个标识,你要kill一个语句的时候很有用。user列,显示单前用户,如果不是 root,这个命令就只显示你权限范围内的sql语句。host列,显示这个语句是从哪个ip的哪个端口上发出的。呵呵,可以用来追踪出问题语句的用户。 db列,显示这个进程目前连接的是哪个数据库。command列,显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接 (connect)。time列,此这个状态持续的时间,单位是秒。state列,显示使用当前连接的sql语句的状态,很重要的列,后续会有所有的状态 的描述,请注意,state只是语句执行中的某一个状态,一个sql语句,已查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成,info列,显示这个sql语句,因为长度有限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据。

  这个命令中最关键的就是state列,mysql列出的状态主要有以下几种:

  Checking table

  正在检查数据表(这是自动的)。

  Closing tables

  正在将表中修改的数据刷新到磁盘中,同时正在关闭已经用完的表。这是一个很快的操作,如果不是这样的话,就应该确认磁盘空间是否已经满了或者磁盘是否正处于重负中。

  Connect Out

  复制从服务器正在连接主服务器。

  Copying to tmp table on disk

由于临时结果集大于 tmp_table_size,正在将临时表从内存存储转为磁盘存储以此节省内存。

  Creating tmp table

  正在创建临时表以存放部分查询结果。

  deleting from main table

  服务器正在执行多表删除中的第一部分,刚删除第一个表。

  deleting from reference tables

  服务器正在执行多表删除中的第二部分,正在删除其他表的记录。

  Flushing tables

  正在执行 FLUSH TABLES,等待其他线程关闭数据表。

  Killed

  发送了一个kill请求给某线程,那么这个线程将会检查kill 标志位,同时会放弃下一个kill请求。MySQL会在每次的主循环中检查kill标志位,不过有些情况下该线程可能会过一小段才能死掉。如果该线程程被 其他线程住了,那么kill请求会在锁释放时马上生效。

  Locked

  被其他查询锁住了。

  Sending data

  正在处理 select 查询的记录,同时正在把结果发送给客户端。

  Sorting for group

  正在为 GROUP BY 做排序

  Sorting for order

  正在为 ORDER BY 做排序。

Opening tables

  这个过程应该会很快,除非受到其他因素的干扰。例如,在执 alter TABLE 或 LOCK TABLE 语句行完以前,数据表无法被其他线程打开。 正尝试打开一个表。

  Removing duplicates

  正在执行一个 select DISTINCT

以上是“如何找出Mysql查询速度慢的SQL语句”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: 如何找出Mysql查询速度慢的SQL语句

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

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

猜你喜欢
  • 如何找出Mysql查询速度慢的SQL语句
    小编给大家分享一下如何找出Mysql查询速度慢的SQL语句,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!启动Mysql时加参数-...
    99+
    2024-04-02
  • mysql如何查询慢的sql语句
    这篇文章主要讲解了“mysql如何查询慢的sql语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql如何查询慢的sql语句”吧! ...
    99+
    2024-04-02
  • 在mysql如何查找效率慢的SQL语句
    这篇文章主要介绍在mysql如何查找效率慢的SQL语句,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句1,slow_...
    99+
    2024-04-02
  • sql语句查询慢如何优化
    优化 SQL 查询性能的方法有很多,以下是一些常见的优化技巧:1. 索引优化:使用适当的索引可以大大提高查询性能。考虑创建索引以支持...
    99+
    2023-09-27
    sql
  • mysql查询速度慢如何解决
    今天小编给大家分享一下mysql查询速度慢如何解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-04-20
    mysql
  • MySQL 中查询速度慢如何解决
    这篇文章给大家介绍MySQL 中查询速度慢如何解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。一、什么影响了数据库查询速度1.1 影响数据库查询速度的四个因素1.2 风险分析QPS:...
    99+
    2024-04-02
  • 如何从MYSQL查询日志中过滤出的慢查询日志并找出TOP SQL
    如何从MYSQL查询日志中过滤出的慢查询日志并找出TOP SQL,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 在 MYSQL 慢查...
    99+
    2024-04-02
  • MySQL查询语句很慢如何解决
    今天就跟大家聊聊有关MySQL查询语句很慢如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。连接查询的优化无论什么数据库,多表连接的查询成本都是...
    99+
    2024-04-02
  • MySQL 查询速度慢的原因
    目录一、慢在哪?二、是否查询了不需要的数据1. 查询不需要的记录2. 多表关联时返回全部列3. 总是查询出全部列4. 重复查询相同的数据三、是否扫描了额外的记录1. 响应时间2. 扫描的行数和返回的行数3. 扫描的行...
    99+
    2022-06-01
    MySQL 查询 MySQL 查询速度慢
  • mysql语句中order by的查询速度太慢 请问需要做出哪些优化策略来提升查询速度...
    如果在MySQL中使用order by语句导致查询速度过慢,可以考虑以下优化策略: 使用索引:为排序字段建立索引可以提高查询速度。 增加内存:如果服务器内存不足,MySQL可能需要使用临时表或磁盘排序,增加内存可以避免这种情况。 减少数...
    99+
    2023-09-05
    mysql 数据库 sql
  • PostgreSQL查询速度慢如何解决
    PostgreSQL查询速度慢如何解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。并非每个PostgreSQL查询都会自动使用索引,只有在表的大小超过一个最小值,并且查询...
    99+
    2023-06-14
  • MySQL Like模糊查询速度太慢如何解决
    问题:明明建立了索引,为何Like模糊查询速度还是特别慢? Like是否使用索引?   1、like %keyword 索引失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数索引=走翻转...
    99+
    2022-05-14
    MySQL Like 模糊查询
  • 「MySQL」- 复杂的SQL查询语句
    任意门 前言 聚合查询 1.聚合函数 count函数 sum函数 avg函数 max函数 min函数 2.分组查询 having子句 多表查询 1.笛卡尔积 2.内连接 3.外连接 左外连接 右外连接 自链接 子查询 合并查询 ...
    99+
    2023-09-07
    数据库 mysql database sql
  • slow query log如何进行查询慢查询语句
    slow query log如何进行查询慢查询语句,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。slow query log查询慢查询语句&n...
    99+
    2024-04-02
  • 【MYSQL高级】Mysql找出执行慢的SQL【慢查询日志使用与分析】
    文章目录 分析慢SQL的步骤慢查询日志(定位慢sql)基本介绍慢查询日志是什么?特别说明 查看慢查询日志是否开以及如何开启设置慢SQL的时间阈值查看阈值设置阈值 查询慢查询日志文件...
    99+
    2023-09-18
    mysql sql adb
  • MySQL如何快速查看原始SQL语句
    这篇文章主要讲解了“MySQL如何快速查看原始SQL语句”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL如何快速查看原始SQL语句”吧!准备工作启用...
    99+
    2024-04-02
  • 如何解决mysql中count查询速度很慢的问题
    这篇文章主要介绍了如何解决mysql中count查询速度很慢的问题,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。MySQL 大表的count()...
    99+
    2024-04-02
  • 【MySQL】如何查询MySQL执行过的所有SQL语句
    文章目录 1 MySQL 的通常查询日志实验2 参考资料 1 MySQL 的通常查询日志实验 通过 MySQL 的通用查询日志可以找到你指定的每一条 sql 语句。很明显会有严重的性能损耗...
    99+
    2023-09-22
    mysql 数据库
  • MySQL如何利用profiling分析SQL查询语句
    查看profiling是否开启: mysql> select @@profiling; +-------------+ | @@profiling | +-------------+ | &...
    99+
    2024-04-02
  • 如何提高mysql的查询速度
    这篇文章主要讲解了“如何提高mysql的查询速度”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何提高mysql的查询速度”吧! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作