我有一个包含100k记录的销售数据库表。在未来的几个月里,这个大小会翻倍,然后会增加三倍等等。这个表与另外两个我需要数据的表有关系。最后,我想在GridView中使用ActiveDataProvider列出所有内容,但需要花费很长时间(3-5分钟)。我想知道处理这种情况的最佳方法是什么?
我当前的查询如下所示:
$query = Sale::find()->select([
's.*',
'u.username as userName',
'ship.name as ShipName'
])
->joinWith('user')
->joinWith('shipping')
$dataProvider = new ActiveDataProvider([
'query' => $query,
'pagination' => [
'defaultPageSize' => 25,
'pageSizeLimit' => 1000],
]);
正如您可以看到它的简单查询,但数据太大而无法正常工作..我该怎么办?