博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
两个神奇的SQL语句
阅读量:5119 次
发布时间:2019-06-13

本文共 866 字,大约阅读时间需要 2 分钟。

请大家一起来看两个SQL语句:
1.
 1
select
 
top
 
10
 id 
from
 yp_41 
where
 2
(
 3
    (
 4
        category 
in
 5
        (
 6
            
select
 categorycode 
from
 all_keyword 
where
 keyword 
like
 
'
%纸箱%
'
 7
        )
 8
        
and
 region 
like
 
'
41%
'
  
 9
    )
10
    
and
 category 
like
 
'
%
'
11
    
or
12
    (
13
        category
=
'
00000000
'
 
and
 
[
name
]
 
like
 
'
%纸箱%
'
 
and
 region 
like
 
'
41%
'
14
    )
15
)
16
2.
 1
select
 
count
(
*
from
 yp_41 
where
 2
(
 3
    (
 4
        category 
in
 5
        (
 6
            
select
 categorycode 
from
 all_keyword 
where
 keyword 
like
 
'
%纸箱%
'
 7
        )
 8
        
and
 region 
like
 
'
41%
'
 9
    )
10
    
and
 category 
like
 
'
%
'
 
11
    
or
12
    (
13
        category
=
'
00000000
'
 
and
 
[
name
]
 
like
 
'
%纸箱%
'
 
and
 region 
like
 
'
41%
'
14
    ) 
15
)
16
两个语句几乎完全一样,只是select子句的内容不同。运行的结果是,第一个语句需要2分多钟,而第二个语句只需要2秒钟左右。
请高人指点一下这是为什么?
以下是一些背景情况:
1 yp_41中的数据有300多万条;
2 all_keyword中的数据有1万多条;
3 所有在where中涉及的列都已加索引(虽然索引对于like好像没什么作用。如果不加索引,则两个SQL一样的慢。)

转载于:https://www.cnblogs.com/AndersLiu/archive/2007/10/26/938669.html

你可能感兴趣的文章
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>