1

我是 yii 的新手,虽然我用 codeigniter 做了很多工作,只是试图将我的代码从 codeigniter 转换为 yii 但是 CDbconnection 的执行时间超过 1 秒,我附上了截图。还有我正在使用的 sql 代码。

$criteria = new CDbCriteria();
$criteria->select = "total_photos";

$data = array( 'Gallerys' => Gallerynames::model()->findAll($criteria));

请调查一下日志的屏幕截图

编辑:

这是我的数据库配置

'db'=>array(
        'class' => 'system.db.CDbConnection',
        'connectionString' => 'mysql:host=localhost;dbname=yiiwiki',
        'emulatePrepare' => true,
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
        'enableProfiling' => true,
        'schemaCachingDuration' => 3600,
    ),
4

1 回答 1

2

来自yii 指南

因为 ActiveRecord 依赖于表的元数据来确定列信息,所以读取元数据并分析它需要时间。这在开发阶段可能不是问题,但是对于在生产模式下运行的应用程序,如果数据库模式不更改,那完全是浪费时间。

因此将 db 应用程序组件的schemaCachingDuration设置大于零的值。'db'=>array('class'=>'system.db.CDbConnection', 'connectionString'=>'sqlite:/wwwroot/blog/protected/data/blog.db', 'schemaCachingDuration'=>3600, ) ,

请记住,您应该在应用程序配置中指定有效的缓存

编辑 看来您的问题不是由于架构。引用更改localhost127.0.0.1修复它

于 2012-08-20T08:11:55.173 回答