数据库设计

上一篇 / 下一篇  2008-10-13 19:34:50 / 个人分类:mysql

数据库设计

 

3NF:

·表内的每一个值都只能被表达一次。

·表内的每一行都应该被唯一的标识(有唯一键)。

·表内不应该存储依赖于其他键的非键信息。

 

DB2:

   SMALLINT: 2 BYTE -32768-------32767

   INTEGER: 4 BYTE -21 4748 3648--------21 4748 3647

   BIGINT : 8 BTTE

 

   CHAR:查询速度快 guid用此表示 <50个字符可用

   VARCHAR:一般表示人名 <32K

   LONG VARCHAR :不能缓冲

 

   Decimal

   Numeric 两者对于要求精确的数字可用

 

   Real : 4 byte 长度:1---24

   Double:8 byte 长度:25--53

   Float:8 byte 可能会丢失精度

 

表中故意设计一个“删除标记”,假删除以维护索引完整性

 

优化大表:

1、 从业务出发,降低数据量

2、 严格控制数据行的尺度, 每行数据量越小,数据库性能越高

3、 控制索引数量

4、 拆表,将一个表结合业务拆分为多个表

5、 考虑采用工作表和历史表单方式,工作表记录当前需要处理的数据,历史表存放使用较少的历史数据

6、 与大表相关的sql脚本,不要轻易使用

 

 键的设计:

1、 为关联字段创建外键

2、 所有键都必须唯一

3、 避免使用复合键

4、 外键总是关联唯一的键字段

 

 

 

 

索引:

1逻辑主键使用唯一的成组索引

2、对系统键(作为存储过程)采用唯一的非成组索引

3任何外键列采用非成组索引

 

簇索引:物理逻辑相同,主键不需要,簇索引一般使用在有连续相同记录的字段上

 

索引设计原则:

1、 频繁更新:索引数<5

2、 查询较多:索引尽量多

3、 对经常出现在where后面的要索引

4、  

   

             


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2009-01-08  
    123
45678910
11121314151617
18192021222324
25262728293031

数据统计

  • 访问量: 503
  • 日志数: 42
  • 建立时间: 2008-07-24
  • 更新时间: 2008-12-30

RSS订阅

Open Toolbar