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个月
==========================
然后即使发现设计不合理,也……
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个月
==========================
然后即使发现设计不合理,也……
相关文章推荐
- select o from ProductType o where o.parent is null;所搜顶级目录
- select * from tsys_opertor where password is null
- Spring.NET :Error creating context 'spring.root': InputStream is null from Resource 错误的解决方法
- SSH报错:org.hibernate.hql.ast.QuerySyntaxException: User is not mapped [select o from User o where 1=1
- g.hibernate.hql.ast.QuerySyntaxException: tbl_base_count is not mapped [SELECT COUNT(*) FROM tbl_bas
- 远程mysql_java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect
- java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect
- null, message from server: "Host ***" is not allowed to connect to this MySQL server"
- Project configuration is not up-to-date with pom.xml. Select: Maven->Update Project... from the
- java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect
- Mysql报错java.sql.SQLException:null,message from server:"Host '27,45,38,132' is not allowed to connect
- java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect
- dual is not mapped,select ordercode_seq_id.nextval nextvalue from dual
- Permission Denial: null asks to run as user 1771 but is calling from user 0; this requires android.p
- MOSS爬网问题Error from SharePoint site: Data is Null. This method or property cannot be called on Null values
- java.sql.SQLException: null, message from server: "Host 'xxx' is not allowed to connect to this MySQ
- Error creating context 'spring.root': InputStream is null from Resource
- select ISNULL(,)来替换NULL值的返回值
- tb_cat is not mapped [ select c from tb_cat c ]
- java.sql.SQLException: null, message from server: "Host '10.11.3.67' is not allowed to connect to t