如何清除 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相关文件的配置