我正在处理一些使用 MVC 框架的 PHP 项目,虽然它们都有不同的方式从数据库中检索对象,但就速度和减少数量而言,似乎没有什么比手动编写 SQL 查询更好的了。查询。
例如,我的一个 Web 项目(由初级开发人员编写)执行 100 多个查询只是为了加载主页。原因是在一个地方,一个方法会加载一个对象,但稍后在代码的更深处,它会加载与第一个对象相关的一些其他对象。
这导致了问题的另一部分,即人们在您有一个表的情况下在做什么,该表在代码的一部分中只需要几列的值,而另一部分需要其他东西?现在(在同一个项目中),每个对象都有一个 get() 方法,它执行“SELECT *”(或显式列出表中的所有列),因此无论何时您出于任何原因需要该对象,你得到了整个事情。
所以,换句话说,你听到了所有关于 SELECT * 不好的讨论,但是如果你尝试使用框架附带的 ORM 类,它通常会这样做。您是否坚持选择使用 SELECT * 的 ORM 与手动编写特定的 SQL 查询?在我看来,我们陷入了便利和效率之间,如果我手写查询,如果我添加一列,我很可能不得不将它添加到代码中的几个位置。
很抱歉这个问题很长,但我正在解释背景以从其他开发人员那里获得一些心态,而不是具体的解决方案。我知道我们总是可以使用像 Memcached 这样的东西,但我宁愿在开始之前优化我们可以做的事情。
感谢您的任何想法。