关于数据冗余设计的优缺点

优点就是:可以快速查询(很多冗余就是为了避免多表链查),缺点就是:可能出现数据不同步问题。

为了方便大家理解举个例子(查询上海的用户20名 )

有1000个用户  需要做地址address省份排序。
一般需要三个表  user(1000)   address(34)     user_address(1000)
如果不冗余。需要查询user_address表    再去查询address   最后user(先查询哪个都一样是信息补全)  60次查询   或者用wherein(不建议)
如果冗余。select * from user  where column_address = '上海' limit 20;
如果更改一下需求  上海用户最后20名登录的。
不冗余的话要用关联查询    效率不言而喻。
冗余还是一条搞定。
缺点:用户修改了地址必须一起更改。

个人体会:我在银行做过一些风险系统,这些系统业务需求都是大多以查询为主的功能。所以后台数据库表的设计多数都是冗余数据。银行说了,反正我有钱,数据量大的我升级硬件呗(有钱任性),只要可以提高查询效率,钱都不是事。

你可能感兴趣的:(数据库知识)