发一个优化的Yii2 试用的千万级数据分页 2 [ 2.0 版本 ]
use app\models\User;
use yii\data\Pagination;
$subQuery = User::find()->select('id')->where('id>0');
if (($count = Yii::$app->cache->get(__METHOD__) == false)) {
$count = $subQuery->count();
Yii::$app->cache->set(__METHOD__, $count, 3600);
}
$pagination = new Pagination(['totalCount' => $count]);
$subQuery->offset($pagination->offset)
->limit($pagination->limit);
$query = User::find()->select('*')->from(['t1' => User::tableName(), 't2' => $subQuery])->where('t1.id=t2.id');
$articles = $query->all();
print_r($articles);
相比上一次写的,缓存了count结果
xutongle
注册时间:2013-12-19
最后登录:2024-01-12
在线时长:46小时17分
最后登录:2024-01-12
在线时长:46小时17分
- 粉丝16
- 金钱660
- 威望60
- 积分1720
共 1 条评论
else呢,有缓存就不管了?
简单写了些。。。
把
$subQuery
作为缓存Key就可以了靠,被你带到沟里了,今天翻帖子,明明不需要else,if成立 $count 就有结果,else个毛线啊