2008-7-4 09:35
棉花糖ONE
晕啊,这样的in也改exists,你们的想法真丰富啊
2008-7-4 10:33
mychary
[quote]原帖由 [i]sxlcom[/i] 于 2008-7-3 12:58 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10840826&ptid=1015964][img]http://www.itpub.net/images/common/back.gif[/img][/url]
请问以下语句如何优化:
CREATE TABLE aa_001
( ip VARCHAR2(28),
name VARCHAR2(10),
password VARCHAR2(30) )
select * from aa_001 where ip in (1,2,3) order by name desc;
--目前表中记录有一千多万条左右 [/quote]
如果 ip 是主索引列,并且返回结果集较少,建议
select * from aa_001 where ip in ('1','2','3') order by name desc;
否则强制用全表扫描
2008-7-4 10:43
haibo_li
关注下
2008-7-4 10:48
guohbest
对于这种千万级的数据量 ,建议使用表分区来提升操作数据的效率!
2008-7-5 13:45
ispu
这表没索引没分区也没啥优化的,多跑一次就优化了:)
2008-8-13 19:26
konger6967
该优化例子的具体讨论:
[url]http://www.cnblogs.com/zping/archive/2008/08/13/1266743.html[/url]
2008-11-12 15:35
qingyun
[quote]原帖由 [i]sxlcom[/i] 于 2008-7-3 13:06 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10840930&ptid=1015964][img]http://www.itpub.net/images/common/back.gif[/img][/url]
用in 不就不能使用索引了吗 [/quote]
谁说的,用不用到索引,是要看执行计划的。
据我经验,除了全表扫描,很多时候in的效率远远超过exists ,而且用in的可读性比较好;
反正具体那个效率高,要结合具体情况,做实践分析。反正我个人倾向于用in.
页:
1
[2]
Powered by ITPUB论坛