China Open source community
站内导航:

 
 
 
当前位置: 首页 >> 程序设计 >> SQL中char和varchar的效率分析
 

SQL中char和varchar的效率分析

作者:Anckly      来源:csdn     发表时间:2006-07-30     浏览次数:      字号:    

写这文章之前先查了点资料,刚好找到一个关于char和varchar性能测试,如下

#############################################################################

  测试分三组,每次增加插入的行数,脚本如下:

 

 

【IT168技术文档】

 

 

 
 
 
本次测试的SQL SERVER 2000
char varchar。

 
 
 
测试分三组
,每次增加插入的行数,脚本如下:
CREATE TABLE [dbo].[testchar] ( [a] [int] IDENTITY (1, 1) NOT NULL , [b] [char] (200) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO CREATE TABLE [dbo].[testvarchar] ( [a] [int] IDENTITY (1, 1) NOT NULL , [b] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY] GO
--truncate table testvarchar
--truncate table testchar declare @i as int
set @i=0
while @i<50000 begin insert into testvarchar values(cast(@i as varchar(200)))
set @i=@i+1
if @i=50000
break end declare @i as int
set @i=0
while @i<50000 begin insert into testchar values(cast(@i as char(200)))
set @i=@i+1
if @i=50000
break end

  测试结果:

 

 

插入行数

 

 

数据类型

 

 

Cpu

 

 

duration

 

 

50000

 

 

varchar

 

 

2359

 

 

21203

 

 

50000

 

 

char

 

 

2344

 

 

22250

 

 

100000

 

 

varchar

 

 

4156

 

 

44500

 

 

100000

 

 

char

 

 

4172

 

 

44186

 

 

2000000

 

 

varchar

 

 

8907

 

 

89093

 

 

2000000

 

 

char

 

 

9188

 

 

96530

 

 

 两表储存空间比较:
 Testchar:73.94M
 Testvarchar:7.94M
 
################################################################################################
 以上资料表明,无论是在存储速度还是存储空间上,varchar都是占优势的。
 然而这次的测试并不是全部准确的,必竟单次的测试,受干拢的因素太多,影响结果。
 实际上,var这种定长字符类型的插入和更新速度是比varchar这种变长字符类型要来的快,虽然差的不是很多。
 
 但是在遇到经常频繁的更新数据库时,这种速度差别就会很明显的体现出来。在这种情形下就要使用char类型来提高数据库的效率。
 总而言之,char是一种重视时间的存储方式,而varchar则是重视空间的存储方式。

编辑 webmaster

 
 
 
评论
 
 
发表
 
姓名: QQ:
性别: MSN:
E-mail: 主页:
评分: 1 2 3 4 5
评论内容:
验证码:
  
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  •  
    中国源码网 - WWW.YUANMA.ORG - 中国开放源代码社区