JFinal中表关联操作的两种方式,哪种性能更好?

周宇YuZhou 发布于 2016/05/09 23:58
阅读 408
收藏 0

在JFinal 文档中,对于表关联操作,列举了两种方式:

表关联操作主要有两种方式:一是直接使用 sql 得到关联数据;二是在 Model 中添加获 取关联数据的方法。 

方式一,使用SQL得到关联数据是使用数据表的JOIN操作,只需要执行一条SQL

方式二,添加关联数据的方法,是单独执行另一条SQL来获取关联数据,需要执行多条SQL

我想知道这两种方式孰优孰劣,还是不分伯仲?是执行多条SQL的开销更大,还是执行数据表JOIN操作的开销更大?

加载中
0
如梦技术
如梦技术
建议1,反正不要用2,我之前发现不少朋友误用2。model的set方法一被调用就夸啦啦请求一堆。要么就不要偷懒,拆了写到java代码里,这样方便控制缓存粒度和缓存的更新。
周宇YuZhou
周宇YuZhou
回复 @Dreamlu : 理解了,谢谢
如梦技术
如梦技术
回复 @周宇YuZhou : 性能得看条件,如果是互联网应用,第一层数据基本都是在cache里,第二种比较容易控制缓存
周宇YuZhou
周宇YuZhou
大多情况下,性能上我是觉得1可能会更好一些,但2使用确实更灵活
0
车开源
车开源
绝大多数情况适用1,至于性能要看具体语句了。总的来说,执行一次总比执行两次开销要少。
0
agloom
agloom
如果数据表中记录非常多,应该方式二性能更好吧?请高手指点
0
你要爪子
你要爪子

方法1看技术,我看到过好多1条sql是占一屏的。而且中间数据没法处理。

方法二可以灵活的处理中间数据。

还有,对写sql需要优化,了解sql运行机制,由mysql执行一遍循环的东西,你搜索出来,用其他语言执行一遍循环差距不会很大

0
nubo
nubo
数据量小随便搞,数据量在100W级别以下join也没关系,数据太多就不要join了,一般互联网都不太推荐join。
返回顶部
顶部