Yii Orm 查询性能探讨 [ 2.0 版本 ]
本人使用 Yii2 (2.0.15.1 March 21, 2018) 进行开发,辅助日志,发现 Orm 单条资源相关查询有些问题(可能是测试有误、或者使用有误,欢迎打脸,共同进步)
Orm 查询单条记录常用查询
$query = ['name' => '张三'];
User::findOne($query);
User::find()->where($query)->one()
以上 Orm 方式查询的实际 sql 变成了
select * from user where name = '张三';//手敲的,大致这个意思
如果查询结果包含多条数据,会全部返回,然后在 one() 相关方法中取出一条,及其占用内存
目前个人是尽可能少用 findOne() 及 没有 limit() 的 one() ,调整如下
User::find()->where($query)->limit(1)->one()
$config['components']['log']['targets'][] = [
'class' => 'yii\log\FileTarget',
'levels' => ['info'],
'logFile' => '@app/runtime/logs/log_'.date('Ym').'.log',
'categories' => ['yii\db\Command::*',],
'logVars' => ['trace'],
'prefix' => function ($message) {
return '';
},
];
希望能够确认猜测,并得到较好的优化方案或使用技巧
共 0 个回答
没有找到数据。
specialnot
注册时间:2015-08-06
最后登录:2019-08-16
在线时长:27小时54分
最后登录:2019-08-16
在线时长:27小时54分
- 粉丝43
- 金钱1175
- 威望200
- 积分3445