连接查询的优点是可以用尽可能少的SQL进行查询。简化了应用和数据库之间的IO调用。缺点是如果表设计不好,SQL写得差,会造成数据库大量的内部IO操作,特别是大量没必要的全表扫描。使用这种方式必须要么是确实要读取的数据量非常大,要么是能够通过索引等方式控制住全表扫描的数量。全表扫描在连接情况下的消耗可以说是指数性的升高的。
子查询查的缺点是应用和数据库之间的IO调用比较多,损耗了数据库的带宽。但是优点是对原来的被驱动表来说数据是明确的,可以通过大量的索引,特别是主键索引避免全表扫描。用哪种没有一定之规。要看读取的数据量、表设计结构、数据库规模、程序设计等多种因素综合考虑。
网友评论