sql IN语句如何优化?(转)
2011-10-11 20:14
591 查看
问题:delete from acct_item where subs_id not in(select subs_id from subs);
我要处理一百万条数据,这条语句删了我近三个小时时间!
答案:delete from acct_item a where not exists (select 1 from subs b where a.subs_id=b.subs_id )
关于in和exist的区别,更专业的解释参见(/article/5438693.html)
我要处理一百万条数据,这条语句删了我近三个小时时间!
答案:delete from acct_item a where not exists (select 1 from subs b where a.subs_id=b.subs_id )
追问:这个select 1不明白什么意思啊?
回答:简单理解就是不查询具体列,只要有值就显示1
【我的理解:not in 的语义是“我的这个东些不在这里面”,因此要确认这个是否为真,还要有一个比较过程;not exists 的语义是“不存在这个东西”,只要这个东邪不存在就可以了,作为初学者,我一直在疑惑什么不存在,其实就是后面选择的东西不存在】关于in和exist的区别,更专业的解释参见(/article/5438693.html)
相关文章推荐
- 优化SQL查询:如何写出高性能SQL语句
- mysql在大数据量下,如何优化SQL语句?
- MySQL如何利用索引优化ORDER BY排序语句
- MySQL如何利用索引优化ORDER BY排序语句
- 如何优化switch语句
- update 语句更新慢如何优化
- 优化SQL查询:如何写出高性能的SQL语句
- 优化SQL查询:如何写出高性能SQL语句
- 如何用 SQL Tuning Advisor (STA) 优化SQL语句
- 优化SQL查询:如何写出高性能SQL语句
- 优化SQL查询:如何写出高性能SQL语句
- 如何用 SQL Tuning Advisor (STA) 优化SQL语句
- 如何优化用SQL语句INSERT INTO … SELECT插入数据时锁全表的问题
- 如何优化SQL语句
- 优化SQL查询:如何写出高性能SQL语句
- MySQL5.6 如何优化慢查询的SQL语句 -- 慢日志介绍
- 如何优化sql语句
- 如何用 SQL Tuning Advisor (STA) 优化SQL语句
- 如何优化用SQL语句INSERT INTO … SELECT插入数据时锁全表的问题
- 优化SQL查询:如何写出高性能SQL语句