数据库表结构优化

1、第一范式(1NF)

字段具有原子性,即数据库表的每一个字段都是不可分割的原子数据项,不能是集合、数组、记录等非原子数据项。

当实体中的某个属性有多个值时,必须拆分为不同的属性。

如地址address字段,可以拆分成省市区

2、第二范式(2NF)

满足1NF的基础上,要求每一行数据具有唯一性,并且非主键字段完全依赖主键字段。

3、第三方范式(3NF)

满足2NF的基础上,不能存在传递依赖

4、反模式设计

适当增加冗余,从而提升查询效率。

5、表设计原则

1) 原则1

字段少而精,建议20个以内(经验之谈,仅参考), 超过可以拆分。

可以把常用的字段放到一起。

把不常用的字段独立出去

大字段(TEXT/BLOB/CLOB等待) 独立出去。

2) 原则2

尽量用小型字段

用数组代替字符串。(节省空间,并提升性能)

避免使用允许NULL的字段 (因为允许NULL字段很难查询优化, 允许为NULL字段的索引需要额外的空间)

3) 原则3

合理平衡范式和冗余

如果数据量非常大,考虑分库分表。

作者:Work Hard Work Smart
出处:http://www.cnblogs.com/linlf03/
欢迎任何形式的转载,未经作者同意,请保留此段声明!

原文地址:https://www.cnblogs.com/linlf03/p/14207587.html