如何检查Magento中特定代码执行的所有查询

Raz*_*SCU 11 php magento

要通过我正在使用的特定代码检查所有查询:

  1. 在Varien_Db_Adapter_Pdo_Mysql中将变量$ _debug从protected修改为public

  2. 对$ _logAllQueries执行相同的操作

  3. 在代码执行之前添加:

    $adapter = Mage::getSingleton('core/resource')->getConnection('core_write');
    $adapter->_debug = true;
    $adapter->_logAllQueries = true;
    
    Run Code Online (Sandbox Code Playgroud)
  4. 在代码后添加此项

    $adapter->_debug = false;
    $adapter->_logAllQueries = false;
    
    Run Code Online (Sandbox Code Playgroud)

    所以你的最终代码将如下所示:

    $adapter = Mage::getSingleton('core/resource')->getConnection('core_write');
    $adapter->_debug = true;
    $adapter->_logAllQueries = true;
    
    Mage::getModel('catalog/product')->load(1);
    
    $adapter->_debug = false;
    $adapter->_logAllQueries = false;
    
    Run Code Online (Sandbox Code Playgroud)

还有其他更优雅的解决方案吗?

Yaz*_*man 0

您可以简单地打开 MySQL 日志文件并在请求页面时监视记录的查询,例如,如果您使用 Linux,请使用命令 tail -F 以实时方式查看日志文件上的所有更改。

例如在 debian 上试试这个:tail-F /var/log/mysql.log