我通常queryRow
用来获取单个记录。例如:-
$lastReport = Yii::app()->db->createCommand(
'SELECT * FROM report ORDER BY created DESC'
)->queryRow();
我查看了 MySQL 日志以了解使用了哪个查询。
SELECT tbl_report.* FROM report ORDER BY created DESC
似乎 Yii 正在从表中检索所有记录并返回第一条记录。
所以我认为我们应该在使用LIMIT 1
时使用queryRow
. 例如:-
$lastReport = Yii::app()->db->createCommand(
'SELECT * FROM report ORDER BY created DESC LIMIT 1'
)->queryRow();
由于queryRow正在返回“查询结果的第一行(以数组形式)”,Yii 应该自动添加限制。否则用户将使用此查询来获取单个记录,这将导致性能下降。
我的理解是正确的还是我遗漏了什么?