请问 MySQL 是双表联查快还是查两次快?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
连接的优点是可以用尽可能少的SQL进行查询。简化了应用和数据库之间的IO调用。缺点是如果表设计不好,SQL写得差,会造成数据库大量的内部IO操作,特别是大量没必要的全表扫描。使用这种方式必须要么是确实要读取的数据量非常大,要么是能够通过索引等方式控制住全表扫描的数量。全表扫描在连接情况下的消耗可以说是指数性的升高的。
单查的缺点是应用和数据库之间的IO调用比较多,损耗了数据库的带宽。但是优点是对原来的被驱动表来说数据是明确的,可以通过大量的索引,特别是主键索引避免全表扫描。
用哪种没有一定之规。要看读取的数据量、表设计结构、数据库规模、程序设计等多种因素综合考虑。
需要考虑两个问题
另外,如果你的应用场景有大量的JOIN, 建议用一下PostgreSQL, 支持哈希JOIN和MERGE JOIN,在嵌套循环的LOOP较多时,这两种的查询效率会高很多 。