首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

为何sql中IN 会遍历全表

2013-09-05 
为什么sql中IN 会遍历全表为什么sql中IN会遍历全表[解决办法]#1.IN的语法相当于多个OR的串连#2.但不一定不

为什么sql中IN 会遍历全表
为什么sql中IN会遍历全表
[解决办法]
#1.IN的语法相当于多个OR的串连
#2.但不一定不起索引哦。示例,下面的两个语句,测试会走索引,且为INDEX SEEK
SELECT * FROM dbo.tab
WHERE name IN ('2555','29999')

SELECT * FROM dbo.tab
WHERE name = '2555'
OR name = '29999'
#3.一般情况下,当你IN中的条件太多,或是无法估计时,优化器倾向于全表扫描。当IN的条件少时,如果优化器认为,INDEX SEEK可以带来好处时,照样会走索引的。
[解决办法]
你从100个人中找1个人和你从10000个人中找1个,当你找到第80个人是你想要找的人后,你会继续找下去吗?
如果说要扫描全表,那就得继续找下去了。

热点排行