Magento 2开发教程 - 配置数据库分析器(profiler)

关于数据库分析器(profiler)

Magento数据库分析器显示页面上执行的所有查询,包括每个查询的时间和什么样的参数被执行。

1: 修改部署配置

修改/app/etc/env.php 将下列代码添加到 magento2/blob/2.0/lib/internal/Magento/Framework/DB/Profiler.php:

        'profiler' => [
            'class' => '\Magento\Framework\DB\Profiler',
            'enabled' => true,
        ],

示例如下:

 'db' =>
  array (
    'table_prefix' => '',
    'connection' =>
    array (
      'default' =>
      array (
        'host' => 'localhost',
        'dbname' => 'magento',
        'username' => 'magento',
        'password' => 'magento',
        'model' => 'mysql4',
        'engine' => 'innodb',
        'initStatements' => 'SET NAMES utf8;',
        'active' => '1',
        'profiler' => [
            'class' => '\Magento\Framework\DB\Profiler',
            'enabled' => true,
        ],
      ),
    ),
  ),
  

2: 配置输出

/** @var \Magento\Framework\App\ResourceConnection $res */
$res = \Magento\Framework\AppObjectManager::getInstance()->get('Magento\Framework\App\ResourceConnection');
/** @var Magento\Framework\DB\Profiler $profiler */
$profiler = $res->getConnection('read')->getProfiler();
echo "";echo"";echo"";echo"";echo"";echo"";foreach($profiler->getQueryProfiles()as$query){/** @var Zend_Db_Profiler_Query $query*/echo'';echo'';echo'';echo'';echo'';}echo"
Time
[Total Time: ".$profiler->getTotalElapsedSecs()." secs]
SQL [Total: ".$profiler->getTotalNumQueries()." queries] Query Params
', number_format(1000 * $query->getElapsedSecs(), 2), 'ms', ' ', $query->getQuery(), ' ', json_encode($query->getQueryParams()), '
"
;

3: 查看输出结果

访问magento 2 的任何页面,示例结果如下图:


Magento 2开发教程 - 配置数据库分析器(profiler)_第1张图片

你可能感兴趣的:(Magento,2)