MySQL档案器-显示档案中没有条目
我正在使用MySQL profiler来帮助诊断我正在调查的一些MySQL问题。但是,当我发出MySQL档案器-显示档案中没有条目,mysql,profiling,phpmyadmin,profiler,Mysql,Profiling,Phpmyadmin,Profiler,我正在使用MySQL profiler来帮助诊断我正在调查的一些MySQL问题。但是,当我发出show profiles命令时,我没有得到任何结果 我就是这样使用它的: set profiling=1 --Enable profiling -- Run some selects / inserts etc select count(*) from mytable insert into mytable (mydata) values ('wibble') show profiles 我希望
show profiles
命令时,我没有得到任何结果
我就是这样使用它的:
set profiling=1 --Enable profiling
-- Run some selects / inserts etc
select count(*) from mytable
insert into mytable (mydata) values ('wibble')
show profiles
我希望show profiles
命令为我提供启用评测(根据信息)后执行的选择等的概要文件数据,但是我得到的只是一个空的结果集。我在启用/禁用配置文件时未看到任何错误,在尝试查看配置文件时也未看到任何错误
以下内容可能相关,也可能无关:
select*from information\u schema.评测
不返回任何结果在回答我自己的问题时 上面描述的内置MySQL评测实用程序似乎是在MySQL会话的基础上运行的。phpMyAdmin似乎在每次发出命令时都创建一个新连接。因此,打开分析的命令和随后的选择命令彼此断开连接 这可以通过SSH连接到MySQL服务器并运行相同的命令来确认。在这种配置中,分析工作正常 但是,它只描述了在该会话中发出的命令。这意味着对来自另一个源(即web应用程序)的DB执行的任何其他查询都不包括在概要文件结果中 我还没有找到任何方法来分析对DB的所有查询,而不考虑其来源(即MSSQL分析器的工作方式)。因此,目前我必须依靠在my.cnf中设置日志配置值,然后在SSH会话中手动执行记录的查询:
log=/var/log/mysqldquery.log
这不是一个完美的解决方案,因为它有点费劲,但它是有效的。经过测试,这是有效的。 如果可以使用事务(取决于您的存储引擎),则可以从PhpMyAdmin执行此操作 试试这个:
START TRANSACTION;
set profiling=1; --Enable profiling
-- Run some selects / inserts etc
select count(*) from mytable;
insert into mytable (mydata) values ('wibble');
show profiles;
COMMIT; --or rollback
请注意,我还在每个查询后添加了一个分号 尽管上述方法可行,但仍有一定的危险。您必须记住,如果您正在使用复制和/或这些查询日志中有更新,那么您将更改您的数据集。小心使用