---------什吗样的数据类型建索引效率比较高?-----
1、如果某一个是用来表示时间的列上建立索引,是不是用如yyyymmddhhmmss这样的char来描述
比直接用datetime型描述,索引的效率要高得多?
2、同样一个列上建索引,是建在varchar(20) 上效率高还是 建在char(20) 上效率高?
为神马?;
3、varchar(20)只存了14个字符,在计算索引的宽度时,这算多少?如果是null呢?
4、什么样数据类型的列上不能建索引?
问题点数:50、回复次数:23Top
1 楼zheninchangjiang(徐若涵)回复于 2004-11-04 08:10:03 得分 5
重复数据较少的列上建索引Top
2 楼zjcxc(邹建)回复于 2004-11-04 08:23:14 得分 20
1.用datetime效率高,datetime固定8字节,用字符的话要用14字符,在检索上,如果要做时间处理,还要进行处理,得不偿失
2.当然是char效率高,char是定长的
3.只算14个字符,null不算入索引
4.text/ntext/image字段上不能建索引Top
3 楼Steve_csdn()回复于 2004-11-04 11:48:32 得分 0
2.当然是char效率高,char是定长的
3.只算14个字符,null不算入索引
于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?
另外还有一个问题,记得oracle里如果利用一个索引select出来的row多于总行数的5%,那这个索引就没有什吗意义。sqlserver里是这样吗?Top
4 楼mgsray(我是新新新新,新来的吧)回复于 2004-11-04 14:27:41 得分 7
oracle是这样的,sql中也是,对于索引来说,重复的数据越少越好.Top
5 楼Steve_csdn()回复于 2004-11-04 15:09:06 得分 0
upTop
6 楼davorsuker39(大狐狸)回复于 2004-11-04 15:28:34 得分 1
UPTop
7 楼Steve_csdn()回复于 2004-11-04 17:27:51 得分 0
upTop
8 楼davorsuker39(大狐狸)回复于 2004-11-04 17:31:23 得分 1
UPTop
9 楼gimy007(逮猫的耗子)回复于 2004-11-04 17:53:32 得分 1
upTop
10 楼Steve_csdn()回复于 2004-11-05 00:37:08 得分 0
upTop
11 楼Steve_csdn()回复于 2004-11-05 12:32:51 得分 0
upTop
12 楼Steve_csdn()回复于 2004-11-05 15:23:33 得分 0
2.当然是char效率高,char是定长的
3.只算14个字符,null不算入索引
于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?
另外还有一个问题,记得oracle里如果利用一个索引select出来的row多于总行数的5%,那这个索引就没有什吗意义。sqlserver里是这样吗?
Top
13 楼lovvver(ElephantTalk.Bright)回复于 2004-11-05 15:31:07 得分 1
学习Top
14 楼ZengMuAnSha(曾牧暗鲨)回复于 2004-11-05 15:59:39 得分 10
1、如果某一个是用来表示时间的列上建立索引,是不是用如yyyymmddhhmmss这样的char来描述
比直接用datetime型描述,索引的效率要高得多?
datetime 小数型的 char 效率高
2、同样一个列上建索引,是建在varchar(20) 上效率高还是 建在char(20) 上效率高?
为神马?;
char(20) 固定宽度
3、varchar(20)只存了14个字符,在计算索引的宽度时,这算多少?如果是null呢?
4、什么样数据类型的列上不能建索引?
Image Bool Text blogTop
15 楼Steve_csdn()回复于 2004-11-05 22:00:33 得分 0
于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?Top
16 楼laoQ(知秋之叶)回复于 2004-11-05 22:20:12 得分 1
学习中…………
作个记号,,
帮UPTop
17 楼Steve_csdn()回复于 2004-11-05 23:04:43 得分 0
upTop
18 楼postfxj(探索者)回复于 2004-11-06 08:25:09 得分 2
char設短一點效率高。Top
19 楼Steve_csdn()回复于 2004-11-06 10:28:29 得分 0
于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?
Top
20 楼Steve_csdn()回复于 2004-11-06 16:22:18 得分 0
upTop
21 楼Steve_csdn()回复于 2004-11-07 01:45:37 得分 0
upTop
22 楼kidnap(Nic)回复于 2004-11-07 08:51:07 得分 1
做个记号Top
23 楼Steve_csdn()回复于 2004-11-07 12:28:37 得分 0
upTop




