如果你的数据库运行缓慢,或者出于某种原因无法响应查询,技术栈中每个依赖数据库的组件都会遭受性能问题。为了保证数据库的平稳运行,你可以主动监控与性能及资源利用率相关的指标--查询执行性能。
MySQL 用户监控查询延迟的方式有很多,既可以通过 MySQL 内置的指标,也可以通过查询性能模式。从 MySQL 5.6.6 版本开始默认启用,MySQL 的 performance_schema 数据库中的表格存储着服务器事件与查询执行的低水平统计数据。
性能模式的 events_statements_summary_by_digest 表格中保存着许多关键指标,抓取了与每条标准化语句有关的延迟、错误和查询量信息。
从该表截取的一行样例显示,某条语句被执行了18次,平均执行用时为 2.5 毫秒(所有计时器的测量值都以微微秒为单位)
按按模式计算以微秒为单位的平均运行时间:
- SELECT schema_name
- , SUM(count_star) count
- , ROUND( (SUM(sum_timer_wait) / SUM(count_star))
- / 1000000) AS avg_microsec FROM performance_schema.events_statements_summary_by_digest
- WHERE schema_name IS NOT NULL
- GROUP BY schema_name;
按模式计算出现错误的语句总数:
- SELECT schema_name
- , SUM(sum_errors) err_count
- FROM performance_schema.events_statements_summary_by_digest
- WHERE schema_name IS NOT NULL
- GROUP BY schema_name;
对于特别查询或调查,使用 MySQL 的 sys 模式通常更为简单。sys 模式以人们更易读的格式提供了一个有条理的指标集合,使得对应的查询更加简单。
2.1、查找最慢的语句(运行时间在 95 名开外):
- SELECT * FROM sys.statements_with_runtimes_in_95th_percentile;
2.2、查看哪些标准化语句出现了错误:
- SELECT * FROM sys.statements_with_errors_or_warnings;
除了性能模式与 sys 模式中丰富的性能数据,MySQL 还提供了一个 Slow_queries 计数器,每当查询的执行时间超过 long_query_time 参数指定的值之后,该计数器就会增加。默认情况下,该临界值设置为 10 秒。
- SHOW VARIABLES LIKE 'long_query_time';
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
微软官方博客于 2 月初再次发布提示,将会在 3 月 9 日停止对经典版 Edge 浏览器...
正则表达式,又称正规表示法、常规表示法(英语:Regular Expression,在代码中...
Part1 背景 锁作为 MySQL 知识体系的主要部分之一,是每个 DBA 都需要学习和掌握...
之前对redis集群关于5.0之前和5.0之后都进行了搭建具体搭建过程可以参考 基于doc...
本文实例讲述了基于jsp+servlet实现的简单博客系统。分享给大家供大家参考。具体...
? 目录 一、事情是这样的 二、首先回顾一下女神的操作流程 三、需要密码打开相册...
申明资料来源于网络及书本通过理解、实践、整理成学习笔记。 文章目录 测试环境...
1.用nobr标签实现不换行 复制代码 代码如下: divHello world!nobr Hello world!...
Android学习笔记–(java) 目录 Android学习笔记--(java) Chapter.One Android St...
url太长就会提示没有权限,ie8不会,这应该跟浏览器有关的 其实有个问题你注意一...