Char 和Varchar 查询速度方面有差别吗 char 效率确实高一些!char 是 固定长度,varchar 是可变长度,查找时候,char效率可能要高一些!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 "如果是使用like进行查询的话,简单的使用index是不行的,但是全文索引,耗空间。 like 'a%' 使用索引 like '%a' 不使用索引用 like '%a%' 查询时,查询耗时和字段值总长度成正比,所以不能用CHAR类型,而是VARCHAR"--摘的 以前就发过这样的贴啊!下面是引用邹老大的:效率和存储空间本来就是矛盾的, 如果你从这个角度来理解我说的, 那就是矛盾的.另外, 在存储空间上, javanow(想我生命的意义) 是正确的. 用sp_spaceused就可以简单地看到存储空间, 可以说明char/varchar在存储处理上的差别.示例:USE tempdbGOCREATE TABLE t1(a char(8000))CREATE TABLE t2(a varchar(8000))GOINSERT t1 SELECT TOP 100 '' FROM syscolumnsINSERT t2 SELECT TOP 100 '' FROM syscolumnsGOEXEC sp_spaceused 't1'EXEC sp_spaceused 't2'GODROP TABLE t1,t2-- 结果, 同样的100条记录, t1表的data空间是800KB, 则t2是8KB-- SQL Server是如何存储数据的, 一看就明白.而在检索上, 就算不考虑索引, char是定长的, 移动到下一条记录, 只需要做固定长度的指针偏移即可. varchar则必须根据当前记录的长度算出下一个数据指针的偏移. 简单一点就是如果长度变化范围不大,char是个好主意。否则绝对是varchar。--------------------------http://chinadba.cn深圳骄子数据库服务网最具实战经验的数据库优化、管理、设计、培训。 复杂sql 求一条去除3分钟内的重复数据的查询。。。急在线等。。。 请教:SQL 2000 中的语法错误 循环写数据 求一sql 一个用VC连数据库的问题,请知道的多帮忙! distinct 问题!!! 怎样获得本地计算机的clientprocessid 存储过程的问题!! 一個存儲過程問題?? 请问各位大虾,WindiowsXP2的操作系统可以装SQL2000吗? 求助一sql语句
GOCREATE TABLE t1(a char(8000))
CREATE TABLE t2(a varchar(8000))
GOINSERT t1 SELECT TOP 100 '' FROM syscolumns
INSERT t2 SELECT TOP 100 '' FROM syscolumns
GOEXEC sp_spaceused 't1'
EXEC sp_spaceused 't2'
GODROP TABLE t1,t2
-- 结果, 同样的100条记录, t1表的data空间是800KB, 则t2是8KB
-- SQL Server是如何存储数据的, 一看就明白.而在检索上, 就算不考虑索引, char是定长的, 移动到下一条记录, 只需要做固定长度的指针偏移即可. varchar则必须根据当前记录的长度算出下一个数据指针的偏移.
如果长度变化范围不大,char是个好主意。
否则绝对是varchar。
--------------------------
http://chinadba.cn
深圳骄子数据库服务网
最具实战经验的数据库优化、管理、设计、培训。