Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1565877
  • 博文数量: 201
  • 博客积分: 2812
  • 博客等级: 少校
  • 技术积分: 3029
  • 用 户 组: 普通用户
  • 注册时间: 2011-01-18 18:28
个人简介

从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。

文章存档

2016年(1)

2015年(8)

2014年(23)

2013年(50)

2012年(32)

2011年(87)

分类: Sybase

2012-01-17 15:19:00

8. 数据库设计建议

   在这里将给出在进行IQ数据库设计时应当遵循的一些建议。
 (1) 恰当地选择字段数据类型的尺寸
     • 在满足要求的前提下选择近可能“窄”的数据类型
     • 如果时间数据的“小时”、“分”、“秒”等信息并不必要时,应使用DATE类型,不要使用
DATETIME(SMALLDATETIME、TIMESTAMP)。因为在IQ中DATE类型占用4个字节,而DATETIME类型占用8字节。
     • 如果使用TINYINT(占用1 byte)、SMALLINT(2 byte)能满足需要,不要使用INTEGER(4 byte)、BIGINT(8 byte)
     • 对于NUMERIC和DECIMAL类型(在IQ中这两个类型是等价的)不要使用缺省(精度:126、标度:38; ASE的缺省是18、0),这样会浪费存储空间;应该根据需求指定恰当的精度和标度,以节约存储空间
     • 不要为CHAR和VARCHAR指定大于实际需要的长度,这样会浪费空间。

  (2) IQ Uniuqe和Minimize_Storage
    • 建议在创建表之前设置Minimize_Storage数据库选项,这将使IQ为表的每个字段创建优化的FP索引。
    • IQ Unique可以用于为表的特定字段制定基数值,以使IQ为该字段创建合适的FP索引。

  (3) 空值(Null Values)
    • 好的做法是为表中的字段显示地制定NULL或NOT NULL(IQ缺省是 NULL,ASE缺省是NOT NULL)
    • 在IQ中,NULL值不会节约数据页得存储空间

  (4) 无符号数据类型(Unsigned Data Types)
    • 对于数值字段(特别是key columns)如果可能的话,尽量使用“Unsigned”类型。因为无符号数据的压缩、处理速度更快
    • 无符号类型数据间的比较操作速度比有符号的块

  (5) 有关join字段
    • 在join字段上尽可能使用integer数据类型(最好是unsigned int),因为整数间的比较操作比字符型数据间的比较快。此外,通常老说integer类型占用的存储空间比char少。
    • Join字段上数据类型最好相同
 

  (6) VARCHAR和CHAR
    • 如果可能的话尽可能使用CHAR而不是VARCHAR,因为在IQ中CHAR类型是按照固定宽度存储的
    • VARCHAR类型有一些存储开销,例如VARCHAR(100)将需要使用100个字节存储数据,另外需要1个额外的字节存放数据的长度。
    • CHAR类型需要在数据后补空格,而VARCHAR类型不补空格

阅读(3246) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~