数据库设计
上一篇 /
下一篇 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: