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 我希望

我正在使用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
命令为我提供启用评测(根据信息)后执行的选择等的概要文件数据,但是我得到的只是一个空的结果集。我在启用/禁用配置文件时未看到任何错误,在尝试查看配置文件时也未看到任何错误

以下内容可能相关,也可能无关:

  • 这些命令是通过phpMyAdmin发出的
  • 我正在运行MySQL 5.0.77
  • 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
    

    请注意,我还在每个查询后添加了一个分号

    尽管上述方法可行,但仍有一定的危险。您必须记住,如果您正在使用复制和/或这些查询日志中有更新,那么您将更改您的数据集。小心使用