oracle - 联表查询还是单表查询?
本文介绍了oracle - 联表查询还是单表查询?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
项目中经常遇到某个信息类中包含多个表数据的情况。
比如,TaskInfo中包含Task的详细信息,以及发布Task的用户User信息,当查询符合条件的Task列表时,应
该如何获取TaskInfo?
我想到的解决办法:
单表多次查询。即,先获取所有符合条件的Task信息,再根据Task中的userId去数据库中查询User信息,
组合成TaskInfo。缺点:查询次数过多。 优点:单表查询缓存效率高
2.联表查询。即,直接使用连表查询,一次性将task和user的信息查询出来。优点:查询只一次。缺点:扩
展性差,缓存效率低
3.将userName等需要的字段同时存在Task表中,如此只查询Task表即可,不需要再查询User表。优点:
查询方便。 缺点:当用户UserName修改之后,改动的表有点多。
不知大家如何抉择?
解决方案
用的有ORM框架吗?ORM的一对多查询,一般是使用第一种方案,即N+1查询,后面N次查询TaskInfo如果有缓存的话,整体性能也不差。
如果自己写sql,而且用户并发数不大的话,直接用方案2吧,开发比较直接、简单。
这篇关于oracle - 联表查询还是单表查询?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文