sql查询效率问题

丰富的分地方的 2009-10-23 05:18:28
我现在写的from Ask as a where not exists (from Answer as an where an.askId=a.askId ) 语句是查询出B表中没有A的数据然后分页
但是表数据一多,我翻页就好慢了,应该怎么改提高查询的效率?
...全文
263 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangrz1967 2009-10-31
  • 打赏
  • 举报
回复
7楼是正解,要先检查原因,对症下药。建议数据库用MySql,速度快效率高
panhaichun 2009-10-30
  • 打赏
  • 举报
回复
from Ask as a where not exists (from Answer as an where an.askId=a.askId )
这条实际针对每条ask记录都做了一次 answer表的查询


改成

from Ask where id not in(select askId from answer)

试试


最好的办法应该在Ask里面加一个 answerCount属性
emptylian 2009-10-30
  • 打赏
  • 举报
回复
不知道是那个数据库,如果是oracle,就使用伪例
catPan 2009-10-30
  • 打赏
  • 举报
回复
索引
Larryxu18 2009-10-30
  • 打赏
  • 举报
回复
你可以用到哪页数据就从数据库中取出哪一页的数据,没必要一次全去出来啊。
APOLLO_TS 2009-10-30
  • 打赏
  • 举报
回复
你的业务是检索没有答案(回答)的问题。

关系操作:

R-S 可以转化为 R与S的连接条件查询。
lolitaline 2009-10-30
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 54powerman 的回复:]
exists效率应该很高了,如果慢就要考虑索引的问题了。[/Quote]

同意。。

54powerman 2009-10-30
  • 打赏
  • 举报
回复
exists效率应该很高了,如果慢就要考虑索引的问题了。多少数据一共?
六朋的雪 2009-10-26
  • 打赏
  • 举报
回复
可参考http://blog.csdn.net/tfnew21
CreateAName 2009-10-26
  • 打赏
  • 举报
回复
分页的时候 显示几条记录就查询几条记录!(假设你用的是 ms)例如:
select top 显示数 * from view_Course where sCourse_Id Not In( select top 显示数*页数 sCourse_Id from view_Course where sCourse_Name like '%搜索条件%') and sCourse_Name like '%搜索条件%'
changyulinjava 2009-10-26
  • 打赏
  • 举报
回复
最好先了解一下,如何优化hibernate 你现在的语句肯定是最慢的那种
ghostwo 2009-10-25
  • 打赏
  • 举报
回复
接分
yonghenghxq 2009-10-25
  • 打赏
  • 举报
回复
把你的子查询语句换成连接查询语句
archko 2009-10-24
  • 打赏
  • 举报
回复
我想不出优化.Not exists本来就不快的.我觉得适当
设置一个冗余的信息字段,再好些,

要不SELECT NEW()构造方法,只查询你要的字段,
可能会快点吧.
FROM Tablename 会查询所有字段.
master123321 2009-10-24
  • 打赏
  • 举报
回复
是不是内存不够呢!
铁匠梁 2009-10-23
  • 打赏
  • 举报
回复
sql慢的原因很多,关键要找准原因,语句执行就很慢,还是数据库性能就很慢。
程序的问题改程序,硬件的问题升级硬件,sql语句的问题优化sql
水中影子 2009-10-23
  • 打赏
  • 举报
回复
你检查一下,是不是你的session忘记关了
yidichaxiang 2009-10-23
  • 打赏
  • 举报
回复
mark
编程小妞儿 2009-10-23
  • 打赏
  • 举报
回复
我觉得分开查比较好
sforiz 2009-10-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gyl05414 的回复:]
加了索引好多了。。。sql语句还能优化吗?
[/Quote]
优化,指什么,效率?你不是觉得翻页慢,这个就没办法了,只要查询出来的数据是合格的、、、要找的话,只能慢慢翻
加载更多回复(2)

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧