sql 嵌套查询语句怎么优化
我写了一个很慢的sql语句,好像可以用left语法代替加快速度,谁帮我改下:SELECT(SELECTcount(pid)FROMpw_postsaWHEREa.tid=...
我写了一个很慢的sql语句,好像可以用left语法代替加快速度,谁帮我改下: SELECT (SELECT count( pid ) FROM pw_posts a WHERE a.tid = b.tid and postdate>$tdtime) AS replies, tid, author, (SELECT subject FROM pw_threads c WHERE c.tid = b.tid) AS subject, (SELECT postdate FROM pw_threads c WHERE c.tid = b.tid) AS postdate FROM pw_posts b where postdate>$tdtime and tid in (select tid FROM pw_threads b where postdate>$tdtime and fid<>0) GROUP BY tid ORDER BY replies DESC LIMIT 0,$listnum
展开
2个回答
2013-06-27
展开全部
最外层的SQL SELECT语句里面的条件,你不要全部套进去,应该先把条件查出来,然后组建最外层SQL语句。简单来说,就是将里面的SELECT语句查出来的结果保存到变量中,然后再来将条件整合,组成最外层SQL语句。LEFT,它并不是加快查询速度,它只不过加快结果集返回的速度。实际上,你并不能感觉到这速度的提高。不过我们还是建议,当你查询很长字符串时(比如说记录的标题)在页面中显示,可以使用LEFT在SQL服务端进行字符截取。
2013-06-27
展开全部
如果是因为大表关联导致的慢,建议建临时表,然后使用pl/sql不关联的方法解决。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询