首页
新闻
论坛
群组
Blog
文档
下载
读书
Tag
网摘
搜索
.NET
Java
游戏
视频
人才
外包
培训
数据库
书店
程序员
欢迎您:
游客
| 退出
| 登录
注册
帮助
我的帖子
我参与的帖子
我的空间
我的网摘
CSDN
CSDN社区
.NET技术
C#
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
生成帖子
置顶
推荐(加精)
取消推荐(加精)
锁定帖子
移动帖子
取消引用
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
sql语句中"like"与"="的执行速度在同样条件下,哪个更快?
[无满意答案结贴,结贴人:czj067]
加为好友
发送私信
在线聊天
czj067
你是一条河
等级:
发表于:
2008-07-25 16:27:06
楼主
如题
问题点数:
20
回复次数:
24
显示所有回复
显示星级回复
显示楼主回复
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
ericzhangbo1982111
Kamui(湿他就湿他)
等级:
发表于:
2008-07-25 16:30:32
1
楼 得分:
0
对sql的查询不了解
个人认为是=比较快
如果那个字段有索引的话可能会按照index来查询
而like的话就要一个个的去匹配
相对就慢了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
JustLovePro
Ivan.Yan
等级:
发表于:
2008-07-25 16:31:44
2
楼 得分:
0
应该是 =
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
sunrobust
咸鱼---翻身理想不灭
等级:
发表于:
2008-07-25 16:31:47
3
楼 得分:
0
like是完全匹配的时候是一样的
如果是%关键字% 这种,那显然是=快
不过like能干的事情, =不能干, 例子同上
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
luffywang
lala
等级:
发表于:
2008-07-25 16:34:19
4
楼 得分:
0
能用=的请用=
like 只有在不确定的时候再用 like '% %'
搜索的方式不同,=的效率好的多
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
caicai_45
菜菜
等级:
发表于:
2008-07-25 16:47:32
5
楼 得分:
0
如果该字段有索引的话,= 和like 'xxx%'这样的效率差不多。
如果是没有索引的话,都是全表扫描。 但是 = 还是比like 快。
全匹配和相似匹配,肯定是全匹配快。
另: 如果加了索引, 记得用 like 'xxx %' 左匹配,才能在sqlserver 中用到索引。
like '%xxx%' 和 like '%xxx' 其实都已经是全表扫描了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
mancinigt
mancini
等级:
发表于:
2008-07-25 16:55:43
6
楼 得分:
0
= 快
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
jasonboy
骑着小猪看夕阳
等级:
发表于:
2008-07-25 16:58:42
7
楼 得分:
0
like就慢多了,尤其是%xxxx%的时候
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
sunheartlee
心晴
等级:
发表于:
2008-07-25 17:01:05
8
楼 得分:
0
当然是=快
但是这两个关键字又不能互换
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
czj067
你是一条河
等级:
发表于:
2008-07-25 17:18:27
9
楼 得分:
0
回:caicai_45:
like '%xxx%' 和 like '%xxx' ,如果此字段也有索引,也不能提高效率吗?
是不是索引对like语句只有左匹配才有效啊?
谢谢!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
billclinton8
1
等级:
发表于:
2008-07-25 17:29:02
10
楼 得分:
0
=快
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
bwangel
以前的昵称配不上我的老婆
等级:
发表于:
2008-07-25 17:40:14
11
楼 得分:
0
两者完全不是相等功能的操作,完全没有可比性。
就好比用电脑进行人像识别和用电脑进行身份证识别的差别一样巨大。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
JeffChung
风中聆听
等级:
发表于:
2008-07-25 18:12:14
12
楼 得分:
0
引用 10 楼 billclinton8 的回复:
=快
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
tootto
tootto
等级:
发表于:
2008-07-25 18:40:01
13
楼 得分:
0
用full text index 结合contains函数才是真正模糊查询。
原因:
1. contains使用sql server内建查询引擎,效率远高于like. sql server 2005更为每一个数据库实例(instance)单独建立独享本文索引引擎。
2. contains支持全字段搜索如 contains(YourTable.*, '"123*"');
3. contains结合参数支持查找任意时态的单词如good, better, best, 只需注明查good.
....
....
所以,性能功能上,contains模糊查询是正道。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
zhzuo
秋枫
等级:
发表于:
2008-07-25 21:02:03
14
楼 得分:
0
只要走索引就快,如果like '%1233%'这种方式不走索引,所以慢。
如果是like '1233%' 那么就具备了走索引的前提。
使用= 可以直接对字段设置索引就可以了。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
flylovejings
ˋH.B_:鏶團灬
等级:
发表于:
2008-07-25 21:26:29
15
楼 得分:
0
两者的用途不一样
查询条件不相同
不要比较!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wangruibaobei
love&Tiger
等级:
发表于:
2008-07-25 21:42:33
16
楼 得分:
0
该用那个就用哪个
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
exy337
.net程序员QQ群:56882399
等级:
发表于:
2008-07-25 21:56:56
17
楼 得分:
0
做程序有时就是要决定用那个好.虽然可能有点武断.
=好.
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
kiraqian
Kira Qian - MSFT
等级:
发表于:
2008-07-25 21:58:35
18
楼 得分:
0
=速度快,like是模糊匹配,而=是等值匹配。
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
win75
小小男
等级:
发表于:
2008-07-25 21:59:03
19
楼 得分:
0
like 和 = 是用在不同的环境的.
如果硬要比的话,个人感觉=快
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
wjp_116
学习中
等级:
发表于:
2008-07-25 22:16:04
20
楼 得分:
0
学习了
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
suyiming
pentium
等级:
发表于:
2008-07-25 22:38:06
21
楼 得分:
0
这要看数据量 多大
小量 like 和= 相差不多。
如海量的数据就有区别,
like会检索全表的 所以肯定慢
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
czj067
你是一条河
等级:
发表于:
2008-07-25 23:16:16
22
楼 得分:
0
明白些了,多谢各位!
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
coolhty
菜鸟作梦都想飞
等级:
发表于:
2008-07-25 23:53:54
23
楼 得分:
0
我相信,能用=的时候没人会去like
修改
删除
举报
引用
回复
加为好友
发送私信
在线聊天
bwangel
以前的昵称配不上我的老婆
等级:
发表于:
2008-07-26 00:21:33
24
楼 得分:
0
看样子你要完全明白了才会有满意结贴哟?!
修改
删除
举报
引用
回复
将帖子提前
放进我的网摘
推荐给好友
我要提问
帖子加分
结贴去...
管理菜单
页面风格切换
标准风格
老版本论坛
网站简介
-
广告服务
-
网站地图
-
帮助
-
联系方式
-
诚聘英才
-
English
-
问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
abc推荐给好友