首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

介绍一种性能极差的HQL写法,帮忙分析上原因

2012-11-03 
介绍一种性能极差的HQL写法,帮忙分析下原因后果:查询时,10000条记录要7分钟!关联关系:select max(this_.D_

介绍一种性能极差的HQL写法,帮忙分析下原因
后果:

查询时,10000条记录要7分钟!

关联关系:

select max(this_.D_BrowseTime) as y0_, this_.N_Knowledge as y1_ from T_TrailRecord this_ inner join T_TrailSession trailsessi1_ on this_.N_TrailSession=trailsessi1_.N_BH where trailsessi1_.N_User=1 group by this_.N_Knowledge order by y0_ desc limit 11


只需要2ms 4 楼 wangqj 2007-10-26   in 比较慢 5 楼 raise 2008-09-05   [flash=200,200][/flash] 6 楼 davidgrubby 2008-09-06   ecsun 写道尽量不要用in查询
如果不用in能用什么代替呢,不一定是lz的例子,能不能稍微解释一下?谢谢 7 楼 nihongye 2008-09-06   貌象在where里的子查询,mysql会执行n次子查询,n约等于外部表记录数量。 8 楼 rainerWJY 2008-09-06   用in的话最好还是用temp表好些,尤其是对mysql这样的。
字段必须建索引 9 楼 duooluu 2008-09-07   还是子查询效率太低了,假如记录数为n,那个子查询会被执行n多次 10 楼 nihongye 2008-09-08   duooluu 写道还是子查询效率太低了,假如记录数为n,那个子查询会被执行n多次
不能一概而论,只是mysql的实现比较笨 11 楼 rxgp02a 2008-09-08   楼上几位好像跑题了,现在讨论的是hibernate。 12 楼 jacky2007 2008-09-24   用EXISTS替代IN 13 楼 yefeng 2008-09-26   这种复杂的HQL,就直接写SQL好的,HIBERNATE里不是可以直接执行SQL的嘛

热点排行