kohana 测量数据库执行时间

Posted

技术标签:

【中文标题】kohana 测量数据库执行时间【英文标题】:kohana measure database execution time 【发布时间】:2013-05-27 08:25:24 【问题描述】:

Kohana 框架中是否有任何方法可以测量(并以某种方式显示)数据库查询执行的分析?在 symfony 1.x 中有一个 debug toolbar(参见图片:http://wiki.netbeans.org/wiki/images/0/0c/Symfony-06e_NB68symfony_es.jpg),在 symfony2 中有一个分析器工具。我在 Kohana 标准版和网络资源中都找不到类似的东西。

我正在使用特别是 kohana 3.2,但我想它可能在所有 3.x 版本中都非常相似。

【问题讨论】:

【参考方案1】:

有一个内置的 Kohana profiler。我总是在我的模板视图中这样使用它:

<?php if (Kohana::$environment !== Kohana::PRODUCTION) : ?>
    <div class="footer">
        <?php echo View::factory('profiler/stats') ?>
    </div>
<?php endif ?>

要显示数据库连接,您需要在 config/database.php 中启用分析(这是存储数据库设置的位置)。您可以显式写入 TRUE 或检查 Kohana::$environment 变量:

return array
(
    'default' => array(
        'type'       => 'mysql',
        'connection' => array(
            'dsn'        => '',
            'username'   => 'yyy',
            'password'   => 'zzz',
            'persistent' => FALSE,
        ),
                'identifier'   => '',
        'table_prefix' => '',
        'charset'      => 'utf8',
        'caching'      => Kohana::$environment === Kohana::PRODUCTION,
        'profiling'    => Kohana::$environment !== Kohana::PRODUCTION,
    ),

您还需要在引导程序中启用分析。这是我通常做的:

if (Arr::get($_SERVER, 'SERVER_NAME') !== 'localhost') // OR your testing URL

    Kohana::$environment = Kohana::PRODUCTION;
    error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);
    $server_name = 'productions_url';

else

    Kohana::$environment = Kohana::DEVELOPMENT;
    error_reporting(E_ALL | E_STRICT);
    $server_name = 'testing_url';


Kohana::init(array(
    'base_url' => $server_name,
    'index_file' => FALSE,
    'charset' => 'utf-8',
    'cache_dir' => APPPATH . 'cache',
    'errors' => TRUE,
    'profile' => Kohana::$environment !== Kohana::PRODUCTION,
    'caching' => Kohana::$environment === Kohana::PRODUCTION,
));

【讨论】:

它是自动显示数据库连接还是我必须编写比这个视图更多的代码?

以上是关于kohana 测量数据库执行时间的主要内容,如果未能解决你的问题,请参考以下文章

kohana orm3中的多插入

如何使用 Kohana ORM 选择以及在哪里 - 如果 - 在?

测量电子表格内置函数的执行时间

Kohana 准备好的语句或查询构建?

有没有办法测量 SQL 查询执行所需的时间而不用 Java 获取结果?

Kohana 3 ORM 模型中的 ORWHERE 等价物