CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

---------什吗样的数据类型建索引效率比较高?-----

楼主Steve_csdn()2004-11-04 02:29:07 在 MS-SQL Server / 基础类 提问

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

相关问题

  • 有谁知道paradox数据表的相关信息?如字段类型,索引,数据查找等等?
  • 索引效率问题
  • 数据类型??
  • 数据类型!
  • 数据类型?
  • 关于数据库索引
  • 数据库索引问题
  • 刷新数据库索引
  • 表合并索引数据
  • 求教!!数据库问题:SQL Server中凡是字符类型都用VarChar,会不会很影响效率?

关键词

  • 数据
  • 字符
  • oracle
  • null
  • 索引
  • 效率
  • 宽度
  • 取舍
  • 类型
  • 话

得分解答快速导航

  • 帖主:Steve_csdn
  • zheninchangjiang
  • zjcxc
  • mgsray
  • davorsuker39
  • davorsuker39
  • gimy007
  • lovvver
  • ZengMuAnSha
  • laoQ
  • postfxj
  • kidnap

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo