php - 每页查询太多

标签 php mysql performance yii2

我正在使用 Yii2 和 Yii2 的标准方式从数据库中获取数据。还使用 JOIN,需要 23 个查询才能获取 90 行以及页面加载的一些其他内容。

但是当我开始在表中显示数据时,它变得很关键。每一行都有多张照片,我只拍了一张照片来展示。那是查询数量超过 100 的时候。

这就是我获取那张图片的方式:

Table1::find()->where(['IDauction'=>$ID])->limit(1)->orderBy('ID ASC')->one();

非常简单的查询,但是当我有 90 行并且每行都执行此查询时,每页超过 100 个。我不确定如何解决这个问题,因为当我使用关系显示所有数据时,查询次数超过 500。例如,我还获取了用户的个人资料图片,而该图片位于不同的表中。

目前我是这样做的

$query = Auction::find();
$query->joinWith(['relationIDpigeon', 'relationIDuser']);
$dataProvider = new ActiveDataProvider([
    'query' => $query,
    'sort'=> ['defaultOrder' => ['start_time'=>SORT_DESC]],//newest first
    'pagination'=>
    [
        'pageSize'=>100,
    ]
]);

最佳答案

您的查询没有正确编写。你也应该在 Yii 中建立你的关系。这样您就可以引用相关的表和行。

你的查询应该是这样的

$result = Table1::model()->findAllByAttributes(array('IDauction' =>$ID),array('order'=>'ID ASC','limit'=> 1));

并像这样引用相关字段

$related_rows = $result->related_rows;

关于php - 每页查询太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32082256/

相关文章:

c# - 在通用中查找速度

c# - 使用 ODP.NET 的第一次查询总是很慢

php json_decode如何输出数组

javascript - 如何读取两个对象的Json?

php - 在 PHP 中将 MySQL 查询结果作为数组获取的最佳方法是什么?

mysql - 为什么当前的数据库查询优化技术不支持计算列的优化?

c++ - 我应该认为静态拷贝是成本高昂的吗?

php - 从 HTML 表单传递的值不正确

默认启用 PHP 5.4 扩展

mysql - 一张表查询性能