问题2:mysql的表performance_schema.events_statements_summary_by_digest数据写满的情况下,如何计算出高频次执行的sql及时间耗费?
时间: 2023-12-10 13:06:20 浏览: 29
当MySQL的表performance_schema.events_statements_summary_by_digest数据写满时,您可以使用以下查询来计算高频次执行的SQL及其时间耗费:
```
SELECT
SCHEMA_NAME,
DIGEST_TEXT,
COUNT_STAR,
SUM_TIMER_WAIT/1000000000000 AS total_latency,
AVG_TIMER_WAIT/1000000000000 AS avg_latency
FROM
performance_schema.events_statements_summary_by_digest
WHERE
SCHEMA_NAME = 'your_schema_name'
ORDER BY
COUNT_STAR DESC
LIMIT 10;
```
这将显示在指定架构中执行次数最多的前10个SQL语句及其总延迟时间和平均延迟时间。您可以将“your_schema_name”替换为您要查询的架构名称。
另外,您还可以使用一些工具来帮助您分析MySQL的性能,例如pt-query-digest和mysqlsla等。这些工具可以帮助您分析MySQL的慢查询日志,并找出慢查询和问题SQL语句。
相关问题
当对mysql的表performance_schema.events_statements_summary_by_digest 进行delete的时候报错:DELETE command denied
这个错误表示当前用户没有权限执行对 'events_statements_summary_by_digest' 表的 DELETE 操作。这是因为 MySQL 的 performance_schema 数据库是一个系统数据库,其中的表和数据是用于 MySQL 的性能监控和调优。为了保护这些数据,MySQL 默认情况下不允许用户对 performance_schema 数据库的表进行修改和删除操作。
如果您确实需要删除 'events_statements_summary_by_digest' 表中的数据,可以尝试使用 root 用户或拥有相应权限的用户进行操作。或者,您也可以尝试使用 TRUNCATE 命令来清空该表中的数据,例如:
```
TRUNCATE TABLE performance_schema.events_statements_summary_by_digest;
```
但是,为了保护 MySQL 的性能监控和调优功能,建议您谨慎操作,不要轻易删除 performance_schema 数据库中的数据。
ERROR 1146 (42S02): Table 'performance_schema.metadata_locks' doesn't exist
如果你在 MySQL 5.6 中执行 `SELECT * FROM performance_schema.metadata_locks` 查询时出现了 `ERROR 1146 (42S02): Table 'performance_schema.metadata_locks' doesn't exist` 的错误,可能是因为你的 MySQL 5.6 实例没有启用 `performance_schema`,或者该表不存在。
首先,你可以通过执行以下语句来检查 MySQL 是否已启用 `performance_schema`:
```
SHOW VARIABLES LIKE 'performance_schema';
```
如果结果中的 `Value` 为 `ON`,则表示已启用。如果为 `OFF`,则需要通过修改配置文件或使用命令行参数来启用。
另外,如果 `performance_schema.metadata_locks` 表不存在,可能是因为你的 MySQL 5.6 版本太旧或者没有安装 `performance_schema` 插件。你可以通过执行以下语句来检查你的 MySQL 5.6 版本是否支持 `performance_schema` 插件:
```
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM information_schema.plugins WHERE PLUGIN_NAME LIKE 'performance_schema';
```
如果该查询返回结果为空,则表示你的 MySQL 版本不支持该插件。如果返回结果不为空,但是 `PLUGIN_STATUS` 为 `DISABLED`,则需要通过修改配置文件或使用命令行参数来启用。
需要注意的是,启用 `performance_schema` 会对 MySQL 的性能产生一定的影响,因此在生产环境中需要谨慎使用。