我应该使用一个大的SQL Select语句还是几个小语句?

sim*_*lob 16 php mysql optimization performance

我正在构建一个PHP页面,其中包含从MySQL发送的数据.

拥有它会更好吗?

  • 1个SELECT查询,包含4个表连接,或
  • SELECT没有表连接的4个小查询; 我从ID中选择

哪个更快,每个方法的pro/con是什么?我每个表只需要一行.

Geo*_*uer 17

你应该运行一个分析工具,如果你真的很担心,因为它取决于很多东西,它可能会有所不同,但作为一项规则,最好是编译更少的查询和更少的数据库往返.

确保您使用where和join子句来过滤事物.

但老实说,它通常无关紧要,因为与数据库可以做的相比,你可能不会被击中那么难,所以除非优化是你的规范,否则不应该过早地做,并且最简单.


Rob*_*ter 5

一般来说,最好有一个 SELECT 语句。拥有数据库的主要原因之一是它们处理信息的速度很快,尤其是在查询格式的情况下。

如果这种方法有任何缺点,那就是某些类型的分析无法用一个大的 SELECT 语句进行。RDBMS 纯粹主义者会坚持认为这是一个数据库设计问题,在这种情况下,您又回到了我最初的建议。


Jos*_*man 5

使用JOIN而不是多个查询时,允许数据库应用其优化.您还可能检索不需要的行(如果要用多个选择替换INNER连接),这会增加应用服务器和数据库服务器之间的网络流量.即使它们在同一个盒子上,这也很重要.