怎么获取有性能问题的sql

这篇文章主要介绍“怎么获取有性能问题的sql”,在日常操作中,相信很多人在怎么获取有性能问题的sql问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么获取有性能问题的sql”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联自2013年起,是专业互联网技术服务公司,拥有项目成都网站制作、成都网站建设、外贸营销网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元井陉矿做网站,已为上家服务,为井陉矿各地企业和个人服务,联系电话:13518219792

  • 用户反馈:获取存在性能问题的sql

  • 慢查询日志:获取存在性能问题的sql

  • 实时获取存在性能的sql

使用慢查询日志获取有性能问题的sql

  • slow_query_log 启动停止记录慢查询日志

  • slow_query_log_file 指定慢查询日志的存储路径以及文件

  • long_query_time 指定记录慢查询日志sql执行时间的阈值

  • log_queries_not_using_indexes 是否记录未使用的索引的sql

怎么获取有性能问题的sql

  • 1:用户信息以及线程id

  • 2:执行查询时间

  • 3:锁的时间

  • 4、返回数据行数

  • 5、扫描数据的行数

  • 6、执行sql时间

  • 7、执行的sql

常用慢查询日志分析工具  MySQLdumpslow

怎么获取有性能问题的sql

怎么获取有性能问题的sql

怎么获取有性能问题的sql

怎么获取有性能问题的sql

常用慢查询分析工具 pt-query-digest

pt-query-digest \

--explain h=127.0.0.1, u=root,p=p@ssW0rd \ slow-mysql.log

怎么获取有性能问题的sql

实时查询

怎么获取有性能问题的sql

怎么获取有性能问题的sql

查询处理各个阶段所消耗的时间

使用profile

1、set profiling = 1 ;

执行查询

  • 启动profile

  • 这是一个session级的配置

2、show profiles;

查看每一个查询所消耗的总时间的信息

mysql> show profiles;
+----------+------------+---------------------------------------------------------------------------------------------------------------------------------------------+
| Query_ID | Duration   | Query                                                                                                                                       |
+----------+------------+---------------------------------------------------------------------------------------------------------------------------------------------+
|        1 | 0.00012525 | sel

select count(*) from temp_shop_user                                                                                                     |
|        2 | 0.09744925 | select count(*) from temp_shop_user   

3、show profiles for query N;

查询的每个阶段所消耗的时间

mysql> show  profile for query 1 ;
+--------------------+----------+
| Status             | Duration |
+--------------------+----------+
| starting           | 2.5E-5   |
| freeing items      | 9.6E-5   | 
| logging slow query | 3E-6     |
| cleaning up        | 2E-6     |
+--------------------+----------+
4 rows in set

 4、查询cpu信息

mysql>  show profile cpu for query 3;
+----------------------+----------+----------+------------+
| Status               | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| starting             | 3.5E-5   | 0        | 0          |
| checking permissions | 6E-6     | 0        | 0          |
| Opening tables       | 1.3E-5   | 0        | 0          |
| System lock          | 6E-6     | 0        | 0          |
| init                 | 8E-6     | 0        | 0          |
| optimizing           | 3E-6     | 0        | 0          |
| statistics           | 7E-6     | 0        | 0          |
| preparing            | 4E-6     | 0        | 0          |
| executing            | 2E-6     | 0        | 0          |
| Sending data         | 0.0296   | 0.03125  | 0          |
| end                  | 1E-5     | 0        | 0          |
| query end            | 3E-6     | 0        | 0          |
| closing tables       | 8E-6     | 0        | 0          |
| freeing items        | 0.000125 | 0        | 0          |
| logging slow query   | 2E-6     | 0        | 0          |
| cleaning up          | 3E-6     | 0        | 0          |
+----------------------+----------+----------+------------+
16 rows in set

5、performance_schema

5.6之后版本,建议启用

怎么获取有性能问题的sql

怎么获取有性能问题的sql

怎么获取有性能问题的sql

1>进入performance_schema 库
mysql> use performance_schema ;
Database changed
2>mysql> update setup_instruments set enabled ='YES' where name  like  'stage%';
Query OK, 0 rows affected
Rows matched: 0  Changed: 0  Warnings: 0

3>启动历史记录表

mysql> update setup_consumers set enabled ='YES' where name  like 'events%';
Query OK, 0 rows affected
Rows matched: 6  Changed: 0  Warnings: 0

到此,关于“怎么获取有性能问题的sql”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


文章标题:怎么获取有性能问题的sql
网页路径:http://ybzwz.com/article/jhgodj.html