反规范化设计方法?
常见反规范化技术:
增加冗余列:在多个表中保留相同的列,通过增加数据冗余减少或避免查询时的连接操作。
增加派生列:在表中增加可以由本表或其他表中数据计算生成的列,减少查询时的连接操作
并且避免计算或使用集合函数。
重新组表:如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个
表来减少连接而提高性能。
水平分割表:根据一列或多列数据值,把数据放到多个独立表中,主要用于表现数据规模很
大,表中数据相对独立或数据需要存放到多个介质上时使用。
垂直分表:对表进行分割,将主键和部分列放到一个表中,主键与其他列放到另外一个表中,
查询时减少IO的次数。
用户查询商品信息时可以采用增加冗余列的方式。
反规范化带来数据的不一致性问题?
批处理维护:指对复制列或派生列的修改积累一定的时间后,运行一个批处理作业或存储过
程对复制或派生列进行修改,这只能对实时性要求不高的情况下使用。
应用逻辑:要求必须在同一个事务中对所有涉及的表进行增删改等操作。用逻辑来实现数据
的完整