12
返回列表 发新帖
楼主: czxin788

一条sql语句优化的请教

[复制链接]
论坛徽章:
5
优秀写手
日期:2013-12-19 06:00:132014年新春福章
日期:2014-02-18 16:50:09马上有车
日期:2014-02-18 16:50:09暖羊羊
日期:2015-03-04 14:54:572015年新春福章
日期:2015-03-06 11:59:47
11#
 楼主| 发表于 2015-8-4 23:50 | 只看该作者
zengxuewen2045 发表于 2015-8-4 23:29
SELECT a.task_id, b.task_type, b.content, count(*) AS num
  FROM jbw_task_unit a
  LEFT JOIN jbw_t ...

你的意思是jbw_tast_unit表的task_id可能有null值,不会走择索引是吧

使用道具 举报

回复
论坛徽章:
1
金牛座
日期:2015-08-19 10:34:53
12#
发表于 2015-8-7 11:30 | 只看该作者
你需要建立一个索引(status,task_id)在a表上:
尝试下这样的改写:
select a.task_id,a.num,b.task_type,b.content
(select
task_id
,count(*) as num
from jbw_task_unit
where status=0
group by task_id
order by task_id
limit 1
) a
left outer join jbw_task b
on a.task_id=b.task_id
;
楼上的你说不错的SQL改写,与你的逻辑可能不一致(具体还要看你的status里的task_id有多少个不同的值)

使用道具 举报

回复
论坛徽章:
40
2014年新春福章
日期:2014-02-18 16:42:02秀才
日期:2015-12-18 09:28:57秀才
日期:2015-12-14 14:51:162015年中国系统架构师大会纪念徽章
日期:2015-09-16 12:54:392014系统架构师大会纪念章
日期:2015-09-16 12:54:392013系统架构师大会纪念章
日期:2015-09-16 12:54:392012系统架构师大会纪念章
日期:2015-09-16 12:54:392011系统架构师大会纪念章
日期:2015-09-16 12:54:392010系统架构师大会纪念
日期:2015-09-16 12:54:39秀才
日期:2015-12-25 15:31:10
13#
发表于 2015-8-10 10:35 | 只看该作者
把 ORDER BY            a.task_id ASC   去掉。

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表