我有一个SQL查询,有4个UNIONS和4个LEFT JOINS.它是如此布局:
SELECT ... FROM table1
LEFT JOIN other_table1
UNION SELECT ... FROM table2
LEFT JOIN other_table2
UNION SELECT ... other_table3
LEFT JOIN other_table3
UNION SELECT ... FROM table4
LEFT JOIN other_table4
Run Code Online (Sandbox Code Playgroud)
运行4个单独的查询然后在事后将结果与php合并会更好吗?或者我应该把它们放在一起?哪个会提供最快的执行?
最明确的答案是测试每个方法,但是UNION最有可能更快,因为MySQL只运行一个查询而不是联盟的每个部分运行4个查询.
您还可以消除在PHP中将数据读入内存并连接它的开销.相反,你可以做一个while()或foreach()或任何一个结果.