yii多个数据库查询或数组

时间:2014-03-19 15:09:53

标签: yii

我们正在开发一个具有复杂UI的应用程序。我不是程序员,但注意到应用程序页面加载时间似乎很慢。

我启用了MySQL查询日志记录,发现有很多重复查询的实例,例如" select x,y,z from table where id = 1"," select x,y,z from table where id = 2",& #34; select x,y,z from table where id = 3&#34 ;.用一个" select x,y,z from table where id in (1,2,3)"替换它们。与运行其中一个查询几乎持续相同的持续时间。总的来说,这样做可以减少加载时间的数量级。在我看来,查询是在循环中发生而不是首先构造的where子句,所有数据都被检索到数组然后循环遍历数组。

当我向编程团队指出这一点时,我被告知在PHP中循环遍历数组与执行单独的SQL调用一样慢。鉴于我对其他编程语言的经验,我觉得很难相信,看起来DAO很容易做到这一点。另一个问题似乎是复杂的模型。任何建议表示赞赏

1 个答案:

答案 0 :(得分:0)

这取决于。如果您的阵列不能为将来的调用进行会话存储序列化,我认为在内存中查询数组要比对数据库进行多次调用更快。但我也认为这是不实际的,除非你真的要使用所有的数据,我的意思是,获取大量的行,你不会将它全部显示给用户。我也认为这不是帮助你,因为你浪费了你的数据库的力量,见Massive PHP array vs MySQL Database?。我不确定我是否在正确的上下文中,但我的建议是以某种方式尝试首先正确构建您的查询,这样您只需查询一次数据库,如果它是太多信息使用分页并只使用固定数量的行在每一次。希望它有所帮助...