数据库中子查询和表连接查询该怎么取舍?

什么时候适合用子查询什么时候适合用表连接查询?那个效率更高些?谢谢

子查询最终是针对某张表的数据信息进行筛选,也就是说不管你嵌套了几层子查询,最后还是在基表中筛选数据;而表连接的话,又分了很多种,比如笛卡尔积,这个就是两个表的所有结果乘积,另外还有自然连接那些,通过表连接查询的结果可以是多张表的合集……也就是说最终展现的时候,多表连接可以是多个表的数据结果,而子查询却只是一个基表里面的某些筛选数据。至于效率,书上基本都只是说在嵌套子查询中,特别是多重嵌套时,系统花销较大,但是实际嵌套子查询与连表查询谁效率高,这个就没有谁能说的清楚了。因为具体的查询效率可以从很多方面进行优化的,比如建表时创建相关索引,根据表结构创建相关表分区,对常使用查询但不常修改数据的表进行簇集等等,这些都可以在查询效率上进行提高。所以对于你提出的想知道两种方式谁优谁劣,我也不好评价,只能提供一些提高查询效率的方法。希望这补充的内容可以给你帮助。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-07-14
子查询都可以用表连接替换,表连接效率更高一点,公司里面代码规定使用多表连接代替子查询,你可以什么时候都用多表连接实现,至于效率分析你需要找DBA了,不过DBA也不会对你说这些事情,
第2个回答  2013-07-28
子查询最终是针对某张表的数据信息进行筛选,也就是说不管你嵌套了几层子查询,最后还是在基表中筛选数据;而表连接的话,又分了很多种,比如笛卡尔积,这个就是两个表的所有结果乘积,另外还有自然连接那些,通过表连接查询的结果可以是多张表的合集……也就是说最终展现的时候,多表连接可以是多个表的数据结果,而子查询却只是一个基表里面的某些筛选数据。本回答被网友采纳
相似回答