php – 最好运行2个sql查询或1并处理重复的结果集?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 最好运行2个sql查询或1并处理重复的结果集?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1774字,纯文字阅读大概需要3分钟。
内容图文
![php – 最好运行2个sql查询或1并处理重复的结果集?](/upload/InfoBanner/zyjiaocheng/906/19bc2eb9205843978ff880f6468ce53c.jpg)
我有一个网页,其ID为GET变量,我需要提取该ID的名称,城市和状态(存储在1个表中)以及与之关联的任何数据(存储在另一个表中).
这些是单个查询的结果:
SELECT
info.name, info.city, info.state,
data.data1, data.data2, data.data3, data.data4
FROM
data_table data,
info_table info
WHERE
data.id = 12345 AND info.id = data.id
name | city | state | data1 | data2 | data3 | data4
---------------------------------------------------
test | temp | AL | 12 | 9 | 1 | 14
test | temp | AL | 63 | 8 | 1 | 6
test | temp | AL | 46 | 66 | 1 | 723
test | temp | AL | 7 | 5 | 2 | 99
test | temp | AL | 4 | 2 | 3 | 0
test | temp | AL | 2 | 11 | 1 | 1
但是名称,城市,州的列数据对于每一行都是相同的,所以我也可以用两个查询来做并返回“正确”的数据量(但显然要花两倍的时间与服务器通信) ):
SELECT
info.name, info.city, info.state,
FROM
info_table info
WHERE
info.id = 12345
name | city | state
-------------------
test | temp | AL
…和…
SELECT
data.data1, data.data2, data.data3, data.data4
FROM
data_table data,
WHERE
data.id = 12345
data1 | data2 | data3 | data4
-----------------------------
12 | 9 | 1 | 14
63 | 8 | 1 | 6
46 | 66 | 1 | 723
7 | 5 | 2 | 99
4 | 2 | 3 | 0
2 | 11 | 1 | 1
因此,一般来说,使用2个查询并返回我需要的确切数据量是否更好?或者由于返回的数据集的(小)大小,只需咬住数据集 – 大于它需要的子弹并且只运行一个查询?
我猜每种情况都有所不同,如果服务器总通信时间/ 2>传输额外数据的时间,然后单个查询更好?
解决方法:
避免过早优化的陷阱,只需单个JOIN而不是尝试在客户端进行JOIN操作.
如果后来证明重复数据是一个重大压力,除了进行多个查询之外,您还有更好的选择来解决问题.
例如,result sets can be compressed,减少重复数据的大小.压缩的CPU开销可能远远小于尝试在客户端执行JOIN操作.
内容总结
以上是互联网集市为您收集整理的php – 最好运行2个sql查询或1并处理重复的结果集?全部内容,希望文章能够帮你解决php – 最好运行2个sql查询或1并处理重复的结果集?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。