【发布时间】:2010-11-19 18:11:48
【问题描述】:
我正在使用包含大量连接的 Doctrine 进行查询。有些是 hasOne 关系,有些是 hasMany。
我认为 CakePHP 对每个 hasMany 关系进行单独的查询,但 Doctrine 似乎做了一个巨大的查询。两者都可以水合数据并将一个漂亮的数组返回到您的 php 脚本中,但它们似乎会进行不同的查询集来这样做。使用 Doctrine,只要您的查询包含多个 hasMany 连接,性能就会变得非常糟糕。
使用 CakePHP,默认是拆分查询,但我可以强制它加入 (http://book.cakephp.org/view/872/Joining-tables)。有没有办法在 Doctrine 中做相反的事情:强制它将 hasMany 连接拆分为不同的查询?我已经尝试过文档和 API,但还没有找到任何东西。
【问题讨论】:
-
如果你把它作为一个物体水合会发生什么?那Doctrine的延迟加载不应该发挥作用吗?
-
您的问题不是您正在查询的表上的索引不佳吗?如果我是你,我会首先在查询上运行 DESCRIBE 并找出是否有任何索引被使用。
-
@dogmatic69,我想你的意思是解释而不是描述?