mysql DBIx:Class是否可以优化一个SQL(*)查询并删除不使用的JOIN?

pepwfjgg  于 2024-01-05  发布在  Mysql
关注(0)|答案(1)|浏览(131)

Pagination在DBIx::Class中调用一个->count,这个->count是在一个也有JOIN条件的关系上。
但是查询本身并不使用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)

qnyhuwrf

qnyhuwrf1#

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

相关问题