Alo*_*cus 7 php mysql performance yii
1)有没有办法在Yii中使用CActiveRecord获取整数列的总和?
否则,我将不得不获取列数据并在服务器端汇总.
2)我还假设通过一个SQL查询获得总和比获取数据列更快,并在服务器上用PHP总结.如果性能很重要,那么mysql服务器是否应该费心去做这样的操作,或者让php服务器来处理这个问题.
请善意的建议.
Tho*_*sen 10
1)我不这么认为,除非你想拥有一个STAT关系,否则以这种方式使用CAvtiveRecord并没有多大意义.假设你有一个"问题"模型和一个"答案"模型,答案属于一个问题.您可以建立统计关系并在"问题"中实现它,如下所示:
Public function relations() {
return array(
'answerSum'=>array(self::STAT, 'Answer', 'questionId', 'select' => 'SUM(answerSum.someFieldFromAnswerTableToSum)')
);
}
Run Code Online (Sandbox Code Playgroud)
然后你检索信息:$ question-> answerSum; 其中$ question是一个Question的实例,其关系声明如上.
2)这是数据量的问题.我个人会选择SQL,因为它能够处理更大量的数据集,从而节省未来.
小智 6
试试吧
$user = User::model()->findBySql('select sum(`you_column`) as `sum` from user', array());
var_dump($user->sum);
Run Code Online (Sandbox Code Playgroud)
在模型中应该是现场总和
| 归档时间: |
|
| 查看次数: |
10884 次 |
| 最近记录: |