【软考】反规范化技术
论反规范化技术
反规范化有这几种技术,增加冗余列,增加派生列,重组表和分割表。其中冗余列是指同一个字段在另外的表中存储一份,减少连表操作。增加派生列是基于另外一个列或者多个列,计算得到一个新的列,可用减少操作,重新组表是指将两个表合并成一个表,这样可用减少连表操作。分割表分为水平分割和垂直分割两种方式,其中水平分割,是表结构不变,表的数据横向划分到不同的表中。垂直分割是指原表的主键分别和部分列组成几个表,这样可用减少IO次数。
反规范化的优点:
1、提高了查询速度
2、减少表的数量
3、减少外键和索引的数量
4、简化查询语句,降低连接操作
反规范化的缺点:
1、数据冗余
2、数据一致性维护问题
3、磁盘空间浪费
4、增加额外开销,这是因为需要处理数据一致性操作
5、可维护性下降,增加了数据库设计的复杂性,可能导致难以理解和维护数据模型。
如何解决数据不一致的问题:
1、批处理维护:定期运行批处理作业或存储过程对数据库进行修改,实时性要求不高
2、应用逻辑,同一事务
中对所有涉及的表进行增删改查,缺点是容易遗漏,不易于维护
3、触发器,对数据的任何修改立刻触发对数据库某些列的相应修改,实时性好,也易于维护