豆包也是干粮
博客园
社区
首页
新随笔
联系
管理
订阅
随笔- 1 文章- 1 评论- 0
varchar与char查询速度的比较
最近在做项目的数据库设计过程中,关于表字段存放字符类型是使用varchar还是使用char类型引起了很多的争论,争论的焦点在于是varchar与char的查询性能哪个高?争论了很长时间都没有具体的结论,我只有按照“实践出真理”的方针,在数据库中验证一下。:)
实际的验证模型如下:在数据库中建立两个表ptrole和ptrole_2表
ptrole表结构如下图:
ptrole_2表结构如下图:
delete from ptrole;
delete from ptrole_2;
declare @i as int
set @i=0
while @i<10000
begin
insert into ptrole(name) values('少华少华少
')
insert into ptrole_2(name) values('
少华少华少
')
set @i=@i + 1
end
select * from ptrole where name like '%少华%'
select * from ptrole_2 where name like '%少华%'
在ptrole和ptrole_2表中的name的字段中插入五个汉字,让name字段完全填充,这个时候我们通过执行
select * from ptrole where name like '%少华%'
select * from ptrole_2 where name like '%少华%'
通过查看两条语句的执行计划如下:
很明显当name字段完全填充的时候,使用name字段作为查询的条件时,char类型的性能要优于varchar
下面我们再看看在name字段没有完全填充的情况下char类型的查询性能是否也优于varchar,这里我们将name的字段长度增加到40
delete from ptrole;
delete from ptrole_2;
declare @i as int
set @i=0
while @i<10000
begin
insert into ptrole(name) values('少华
')
insert into ptrole_2(name) values('
少华
')
set @i=@i + 1
end
select * from ptrole where name like '%少华%'
select * from ptrole_2 where name like '%少华%'
查询语句的执行结果如下:
从上面的执行结果上我们可以看出,在name字段不完全填充的情况下,char字段的查询性能要比varchar差,从上面的结果可以看出这个差距最少是一倍。
如果字段的长度越大,在字段不完全填充的情况下,varchar的性能优势就月明显。但是这个不是线性的比例。
Tag标签:
varchar char 查询 性能
posted @ 2008-06-03 13:28
豆包也是干粮
阅读(112)
评论(0)
编辑
收藏
所属分类:
数据库
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2008-06-03 13:33 编辑过
相关文章:
写有效率的SQL查询(IV)
写有效率的SQL查询(V)
写有效率的SQL查询(III)
理解总结比较:Char 和 Varchar 与 nchar 和 nvarchar
理解总结比较:Char 和 Varchar 与 nchar 和 nvarchar
Enterprise Library系列文章回顾与总结
相关链接:
所属专题:
地震
最新IT新闻:
十月上市 Google手机HTC Dream官方图现
2008年8月29日IT博客精选
微软在华布局农村手机 定位小城镇和打工者
暴雪确认《星际争霸2》将不会在08年内发售
福布斯:IE8很多功能针对谷歌 微软要玩偷袭
博客园新闻频道
博客园首页
社区
<
2008年6月
>
日
一
二
三
四
五
六
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
我的标签
留言簿
给我留言
查看留言
我的标签
性能(1)
varchar char 查询 性能(1)
随笔分类
.net
(rss)
java
(rss)
linux
(rss)
memcached
(rss)
performance turning
(rss)
unix
(rss)
数据库(1)
(rss)
随笔档案
2008年6月 (1)
文章分类
测试(1)
(rss)
最新评论