通过performance schema收集慢查询

MySQL5.6起performance schema自动开启,里面涉及记录 statement event的表

mysql> show tables like ‘%statement%‘;
+----------------------------------------------------+
| Tables_in_performance_schema (%statement%)         |
+----------------------------------------------------+
| events_statements_current                          |
| events_statements_history                          |
| events_statements_history_long                     |
| events_statements_summary_by_account_by_event_name |
| events_statements_summary_by_digest                |
| events_statements_summary_by_host_by_event_name    |
| events_statements_summary_by_program               |
| events_statements_summary_by_thread_by_event_name  |
| events_statements_summary_by_user_by_event_name    |
| events_statements_summary_global_by_event_name     |
| prepared_statements_instances                      |
+----------------------------------------------------+
11 rows in set (0.00 sec)

statement event 的设置

详细参考官方文档:https://dev.mysql.com/doc/refman/5.6/en/performance-schema-statement-tables.ht

server端发生的所有的statement都会记录,当前未结束的会话发生的statement记录在表events_statements_current,已结束的会话线程发生的statement记录在events_statements_history,此表有大小限制,默认是100,达到限制会删除老的statement

设置记录哪些类型的statement,默认设置为所有的类型

mysql> SELECT * FROM setup_instruments WHERE NAME LIKE ‘statement/%‘;
+---------------------------------------------+---------+-------+
| NAME                                        | ENABLED | TIMED |
+---------------------------------------------+---------+-------+
| statement/sql/select                        | YES     | YES   |
| statement/sql/create_table                  | YES     | YES   |
| statement/sql/create_index                  | YES     | YES   |
...
| statement/sp/stmt                           | YES     | YES   |
| statement/sp/set                            | YES     | YES   |
| statement/sp/set_trigger_field              | YES     | YES   |
| statement/scheduler/event                   | YES     | YES   |
| statement/com/Sleep                         | YES     | YES   |
| statement/com/Quit                          | YES     | YES   |
| statement/com/Init DB                       | YES     | YES   |
...
| statement/abstract/Query                    | YES     | YES   |
| statement/abstract/new_packet               | YES     | YES   |
| statement/abstract/relay_log                | YES     | YES   |
+---------------------------------------------+---------+-------+

关于对statement event相关表的设置,MySQL5.6 默认events_statements_history关闭,MySQL5.7开启

mysql> SELECT * FROM setup_consumers WHERE NAME LIKE ‘%statements%‘;
+--------------------------------+---------+
| NAME                           | ENABLED |
+--------------------------------+---------+
| events_statements_current      | YES     |
| events_statements_history      | NO      |
| events_statements_history_long | NO      |
| statements_digest              | YES     |
+--------------------------------+---------+

如果通过pmm来收集慢查询,其查询的是表events_statements_history_long,MySQL5.6需要启用此表

启用events_statements_history

UPDATE setup_consumers SET ENABLED = ‘NO‘
WHERE NAME LIKE ‘events_statements_history‘;

原文地址:https://www.cnblogs.com/Bccd/p/8331405.html

时间: 2024-07-31 21:59:38

通过performance schema收集慢查询的相关文章

[MySQL Reference Manual] 23 Performance Schema结构

23 MySQL Performance Schema 23 MySQL Performance Schema.. 1 23.1 性能框架快速启动... 3 23.2 性能框架配置... 5 23.2.1 性能框架编译时配置... 5 23.2.2 性能框架启动配置... 6 23.2.3 启动时性能框架配置... 8 23.2.3.1 性能架构事件定时... 8 23.2.3.2 性能框架事件过滤... 9 23.2.3.3 事件预过滤... 10 23.2.3.4命名记录点或者消费者的过滤.

Profiling MySQL queries from Performance Schema

转自:http://www.percona.com/blog/2015/04/16/profiling-mysql-queries-from-performance-schema/?utm_source=tuicool When optimizing queries and investigating performance issues, MySQL comes with built in support for profiling queries aka SET profiling = 1;

XtraBackup全备工作流程解读与总结

背景 出于对XtraBackup工作原理好奇,做了下面的日志解读 工作流程解读 [[email protected] 09:23:35 /root] #time innobackupex --defaults-file=/data/mysql/mysql3306/my3306.cnf -S /tmp/mysql3306.sock -uroot -plmlm /data/backup/ 180525 09:24:24 innobackupex: Starting the backup operat

mysql案例分析

工作中,需要设计一个数据库存储,项目的需求大致如下: (1)对于每个用户,需要存储一个或多个库, 每个库, 由一个用户标识来标识,这里成为clientFlag. (2) 对于每一个库,结构如下: 1) 一个clientFlag对应多个组,组包括组名和组的描述一类的信息 2)一个组中有多个成员,每个成员包括成员名和成员描述一类的信息 3)一个成员包括若干张自己喜欢的图片,图片有图片的文件ID和图片的描述信息 4)每张图片对应于多个版本,每个版本下存储使用深度学习引擎生成的特征 这个需求的目的是,给

MySQL5.7中 performance和sys schema中的监控参数解释

MySQL5.7中的mysql  performance和sys 监控参数 1.performance schema:介绍 在MySQL5.7中,performance schema有很大改进,包括引入大量新加入的监控项.降低占用空间和负载,以及通过新的sys schema机制显著提升易用性.在监控方面,performance schema有如下功能: ①:元数据锁: 对于了解会话之间元数据锁的依赖关系至关重要.从MySQL5.7.3开始,就可以通过metadata_locks表来了解元数据锁的

MySQL慢查询的可能原因及解决思路

要有高性能的MySQL服务,不仅需要设计好的库表结构.好的索引,还需要有好的查询. 也就是说,一个慢查询的出现,可以从服务器.库表结构.索引.查询语句等方面着手. 对查询进行性能剖析有两种方式,一种是剖析服务器负载,另一种是剖析单条查询. 1.剖析服务器负载 1.1捕获慢查询 使用慢查询日志.慢查询日志是开销最低.精度最高的测量查询时间的工具,而且I/O开销可以忽略不计. 但如果长期开启慢查询日志,应部署好日志轮转(log rotation)工具.或者只在收集负载样本的期间开启. MySQL还有

详解MySQL查询缓存

查询缓存是指存储使用SELECT语法查询到的返回到客户端的文本.当相同的请求再次发生时,会从查询缓存中获取数据,而非再执行一遍查询.查询缓存是共享Session会话的,所以一个客户端的请求可能与另一个客户端的请求得到相同的结果. 当服务器频繁收到相同的请求而数据库中的表数据变化频率又不高,查询缓存是非常有用的,它可以大大提高应用程序的访问效率.很多Web服务器利用这一原理基于数据库的内容动态生成页面. 查询缓存并不会返回过期的数据,当数据库中的表数据发生变化时,相关的查询缓存会自动清除.但是查询

mysql查询语句

mysql查询语句常用SELECT命令打印当前的日期和时间select now();打印当前的日期select curdate();打印当前时间select curtime();查看当前版本select version();打印当前用户select user();查看当前数据库实例select database();查看系统中可用的变量show variables;查看系统中全局变量show global variables;一般查询系统可用变量或是全局变量都是通过like的方式来进行查询的,因

MySQL存储引擎 SQL数据导入/导出 操作表记录 查询及匹配条件

MySQL存储引擎的配置 SQL数据导入/导出 操作表记录 查询及匹配条件 1 MySQL存储引擎的配置1.1 问题 本案例要求MySQL数据存储引擎的使用,完成以下任务操作: 可用的存储引擎类型 查看默认存储类型 更改表的存储引擎 1.2 步骤 实现此案例需要按照如下步骤进行. 步骤一:查看存储引擎信息 登入MySQL服务器,查看当前支持哪些存储引擎. 使用mysql命令连接,以root用户登入: [[email protected] ~]# mysql -u root –p Enter pa