如何清除 MySQL 查询配置文件

Posted

技术标签:

【中文标题】如何清除 MySQL 查询配置文件【英文标题】:How to clear MySQL query profiles 【发布时间】:2014-02-09 23:25:01 【问题描述】:

mysql 中打开分析后

  SET profiling=1;

我可以像SELECT NOW(); 这样的查询一样运行,并查看配置文件结果及其执行时间:

  SHOW PROFILES;

但是,我不知道如何清除配置文件列表。有人知道删除旧个人资料数据的声明吗? SET profiling=0; 只是禁用新数据的记录,不会删除旧的统计信息。

【问题讨论】:

【参考方案1】:

为了完整起见:关闭与服务器的当前连接并重新连接会重置分析计数。

【讨论】:

【参考方案2】:

要删除以前的查询配置文件集@@profiling_history_size=0。以下 sn-p 清除配置文件,将历史记录设置为其最大大小并启用分析

SET @@profiling = 0;
SET @@profiling_history_size = 0;
SET @@profiling_history_size = 100; 
SET @@profiling = 1;

在 5.6.17 测试

【讨论】:

这会删除之前的查询,但不会重置自动增量 ID。我不想在调试过程中不断更新查询 ID,但我没有(或不想)发出ALTER TABLE PROFILING AUTO_INCREMENT=1; 的权限 - 还有其他方法可以重置它吗?谢谢(我尝试设置 profiling_history_size=1) 在 MySQL 编辑器中,您可以停止正在执行的查询。这似乎重置了分析和 auto_increment!【参考方案3】:

分析信息存储在information_schema.profiling 临时表下,如http://dev.mysql.com/doc/refman/5.0/en/profiling-table.html 中引用的那样

在具有所需访问级别的数据库用户下,如果引擎允许,您可以截断存储在那里的信息;

TRUNCATE TABLE information_schema.PROFILING;

如果没有,你可以重启 MySQL 服务器,因为information_schema 只存储在内存中,服务重启后分析信息不会保留。

【讨论】:

这是有道理的。但是,使用 root 帐户并设置为我认为对我获得以下所有内容的 100% 权限:Access denied for user 'root'@'localhost' to database 'information_schema'。你知道什么会控制这个权限吗? 你可以重启mysqld,表会重新创建。 information_schema 仅存储在内存中,由视图组成,服务重启后不会保留分析信息。 是的,重启工作,但不是首选方法——尤其是在现场机器或其他开发人员正在使用的机器上。这些表是 info 架构中的只读表吗?

以上是关于如何清除 MySQL 查询配置文件的主要内容,如果未能解决你的问题,请参考以下文章

mysql 日志文件mysql-bin文件清除方法,和mysql-bin相关文件的配置

通过Binlog恢复数据

如何查看mysql的bin日志文件内容

MySQL入门——Linux下安装后的配置文件

Xamarin 表单:如何从 ios 捆绑签名中清除旧的分发证书和配置文件?

如何查找MySQL中查询慢的SQL语句