DBIx:Class 可以优化 COUNT(*) 查询并删除未使用的 JOIN 吗?

问题描述 投票:0回答:1

分页在也具有 JOIN 条件的关系上调用

->count
中的
DBIx::Class

但是查询本身并没有使用 JOIN 条件,但是无论如何,它都包含在查询中。

这使得

COUNT(*)
查询变慢。

有什么方法可以指示

DBIx::Class
从最终查询中省略未使用的关系吗?

查询如下所示:

SELECT COUNT(*)
FROM products me
LEFT JOIN models model ON model.id = me.product_model_id
WHERE (me.manufacturer_id = 123)

我希望它可以简化为:

SELECT COUNT(*)
FROM products me
WHERE (me.manufacturer_id = 123)
mysql perl dbix-class
1个回答
0
投票

A

JOIN
确实会影响查询的结果,只有
LEFT JOIN
不会。 据我所知,DBIC 不包含这样的优化器。 如果您向我们展示您的代码,我们可以建议更好的版本。 为什么首先要添加联接?

© www.soinside.com 2019 - 2024. All rights reserved.