mysql数据库多表联接查询效率
2014-06-26 来自:Mr.Quincy 4 人回应

以前一直以为利用mysql多表联接查询语句进行数据库查询的效率高于通过多条语句进行查询的效率。
这些天进入公司,组长说的完全相反,他说在程序执行时,90%的时间是用在数据库交互上,所以可以的话,进行多条语句查询,效率更高。这点我很怀疑,请教各位大神。
还有就是union的效率问题。将获取的结果分开查询,然后通过php程序计算结果快,还是通过union将结果连接提来的效率高?

2014-07-07 来自:那一夜我失身了

在织梦还是discuz我忘了,官方手册中有一条说明,如果一个结果,可以分开多个select,就不要用联合查询。之前在培训的时候讲师也这样说过。导致我很长一段时间,尤其是用TP框架,都是分开查询的。但实际公司的情况是,不论是在瑞友,还是在宜信,大数据的情况下,完全不会考虑用多个SQL来搞定。
其实,个人倾向于联合查询,即可以锻炼联合查询能力,还可以让你对如何优化SQL有所了解。
至于效率,其实,分开查,很多时候效率比联合查询效率要高。但我不推荐。对你成长没什么帮助。

2014-06-30 来自:敉莉

在使用UNION的时候,数据库会分别查询三个表的内容,然后合并成一个虚拟表输出来
--这相当于读了数据表四次

而多条SELECT语句可以减少一次数据读取,而这一次数据读取就是UNION中的最后一步,也是数据量最多的一次,所以效率要比UNION更高!

2014-06-29 来自:人類的悲劇〃
  1. 首先看mysql的执行计划 如果某些你期望的索引没有用到 可以使用强制索引 不停的看执行计划 慢慢调整语句
  2. sql优化的基本原则是 尽量缩小结果集
  3. 有的时候 分成多条语句 是比较快的
2014-06-28 来自:Clover謎顏

你组长说的有一定道理的. <<高性能mysql>> 三版, <<Complex Queries Versus Many Queries>>. 但具体哪一种会更快, 不一定的... 自己测一下吧

您的回应

你还未登陆,不能回应!登陆