问题描述
有两张表:表一book表字段名类型idintnamevarchar(200)表二book_desc表字段名类型idintbidint--表一的外建1对1的关系contentvarchar(2000)数据库是mysql,数据量大约有两万多条idnamecontent1我的父亲我的父亲描述的是。。。。我现在想把此表展示出来,用的是ibatis现在有两种一种是在sqlmap里将<selectid="getBookListByQuery"parameterClass="BookQuery"resultMap="Book.BookResult">select<includerefid="Book.allFields"/>frombookt1leftjoinbook_desct2ont1.id=t2.bid<includerefid="Book.conditionQuery"/>orderbyhitsdesc,comment_countdesclimit#startRow#,#endRow#</select>就是用ibatis里用leftjoin一次查出来。然后显示。别外一种是是在sqlmap里将先把book表里数据查出来,是个list然后将book_desc里数据查出来list然后循环,将book_desc里数据搞到book里,显示出来。。哪种速度更快呢??
解决方案
解决方案二:
支持后者!
解决方案三:
两万多条数据不多,用leftjoin简单,也不会影响性能。
解决方案四:
我觉得第一种也不是不可以。既然你已经用了limit不会一次把2W多数据查出来
解决方案五:
为什么是后者啊,给解释一下啥。,后者搞很麻烦啊。。郁闷如果limit0,10的话。。leftjoin会产生多少次查询,如果数据量增加,10万,,一百万呢??我在想,如果每二种方法更优的话,,有没有通用点包,可以不必自己搞,,设置好就可以了。。今天项目经理也要我改成每二种方法,,郁闷。。俺们是大公司,,二万条数据是保守估计。。。
解决方案六:
自然是Leftjoin啦
解决方案七:
能一条就不要两条。要相信数据库的能力!推荐第一种!简单,速度快
解决方案八:
数据量大约有两万多条所以你要使用leftjoin而且二万条数据要一次性查询出来吗?你可以使用leftjoin然后再加上分页..这个是最好的方案..至于一条条的绝对不建议,你给数据库太大的负担了。。
解决方案九:
支持后者+1
解决方案十:
<includerefid="Book.allFields"/>ibatis还有这种写法,能给点资料参考下吗
解决方案十一:
自己找了,谢谢引用9楼ynynbgmwh的回复:
<includerefid="Book.allFields"/>ibatis还有这种写法,能给点资料参考下吗
解决方案十二:
一次查询出2W?还是从2W中查出一小部分
解决方案十三:
我们也是用的第一种,我们还有几十W甚至几百W的数据啊!