我正在研究一些使用MVC框架的PHP项目,尽管它们都有不同的从数据库中检索对象的方式,但似乎没有什么比用手写SQL查询更快,并且减少查询数量。什么是MVC模型中有效的数据访问的良好平衡?
例如,我的网络项目之一(由初级开发者编写)执行超过100个查询,只是加载主页。原因是在一个地方,一个方法会加载一个对象,但是稍后在代码的更深处,它会加载一些与第一个对象相关的其他对象。
这导致了问题的其他部分,人们在表格的某个部分只需要几列数值而另一部分需要其他部分的情况下正在做什么?现在(在同一个项目中),每个对象都有一个get()方法,它会执行一个“SELECT *”(或者明确列出表中的所有列),以便在任何时候因为任何原因需要该对象时,你得到了整个事情。
因此,换句话说,你听到所有人都在谈论如何SELECT *是坏的,但如果您尝试使用自带的框架ORM类,它要做到这一点,通常。你坚持选择ORM与SELECT *手动编写特定的SQL查询?在我看来,我们坚持在便利和效率之间,如果我手写查询,如果添加一列,我很可能不得不将它添加到代码中的多个位置。
很抱歉的长期问题,但我解释的背景,得到其他开发商的一些思维方式,而不是可能是具体的解决方案。我知道我们总是可以使用像Memcached这样的东西,但我宁愿在进入之前优化我们所能做的。
感谢您的任何想法。
感谢您的回答!它几乎证实了我的想法...... ORM并不是为速度而设计的,而是为了便于使用......就像贬低“编程”的lanuners并希望更好的程序员一样。 :) – Poldon 2009-04-30 20:57:23