您的位置:首页 > 其它

not in和select ** from is null

2008-08-29 21:38 239 查看
有这么一句sql

select * from order where order_id not in (select order_id from order_del)

========================

上来就想not in效率差,于是优化为

select * from order a where (select b.order_id from order_del b where a.order_id=b.order_id) is null

=========================

结果是大错特错,order的每一行数据都要从order_del去取一遍数据

本来4~5s完成的查询愣是被拖到了25~6s

=========================

当然,如果要用到not in的时候,肯定是数据库设计出了问题

都到了项目的维护阶段了……只能容忍现有的数据和数据结构

=========================

想起javaeye某网友的话:

客户领导对项目的预期是一年

签合同的代表就可能把项目给压缩成6个月

到了软件公司内部,老总把它压缩为3个月

再经过部门经理和项目经理

真正的开发时间只有1个月

==========================

然后即使发现设计不合理,也……
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐