首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更高效-多个SQL查询或一个查询和处理在php中?

问更高效-多个SQL查询或一个查询和处理在php中?
EN

Stack Overflow用户
提问于 2014-10-16 14:33:44
回答 3查看 2.3K关注 0票数 3

我有一个php应用程序,显示了3个数据表,每个数据表都来自同一个MySQL表。每个记录都有一个名为status的整数字段,它的值可以是1、2或3。表1显示状态=1的所有记录,表2显示状态=2,表3显示状态=3。

要实现这三个MySQL查询,可以使用WHERE按状态筛选,迭代每组结果一次,以填充这三个表。

另一种方法是从表中选择all,然后对每个表迭代一次相同的结果集,使用php每次测试status的值。

这些方法中的一种会比另一种更有效吗?或者他们中的一个会被认为比另一个更好的实践?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-10-16 14:40:47

通常,最好在RDBMS端进行筛选,这样就可以减少需要传输的数据量。

通过网络将数据从RDBMS服务器传输到PHP客户端并不是免费的。网络具有一定的容量,您可以产生如此多的通信量,从而成为限制应用程序性能的因素。

例如,最近我帮助一个每秒运行多次查询的用户,每个用户生成13 of的结果集数据。查询在服务器上执行得很快,但是他们无法将数据发送到他的应用程序,因为他只是在耗尽他的网络带宽。这是一个在测试过程中没有发生的性能问题,因为当他一次运行一个查询时,它是在网络容量范围内的。

票数 2
EN

Stack Overflow用户

发布于 2014-10-16 14:39:44

如果使用第二种方法,则只与数据库连接一次,因此效率更高。即使不是,它也更优雅,海事组织。

当然,在某些情况下,连接三次会更好。从这个查询中获取信息会很复杂),但是在大多数情况下,我会用第二种方式来获取信息。

票数 0
EN

Stack Overflow用户

发布于 2014-10-16 14:47:17

我会创建一个存储过程,返回所有您需要预先格式化的字段,不要多,不要少。

然后只在php上循环,而不调用任何其他表。

通过这种方式,您只运行一个查询,并且只获得所需的字节。因此,相同的带宽,更少的http请求=更高的性能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26407031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档