数据库冗余什么意思(数据库数据冗余是什么意思)

做到需要分库分表的业务量,应该有专门的人员来对数据库进行设计了,不应该是由开发人员单方面决定,所以贵公司的团队结构需要稍微优化一下了。

第一个问题,冗余。所谓冗余,是指同一项数据存储有多份存储。在数据库设计中,经常利用冗余来针对性的对业务进行优化:1、各种集群结构,不管是主从结构还是主-主结构,数据会复制到多个数据库实例中,达到分担压力和高可用的目的;2、不同的表中存储相同的字段,主要是针对一些高频率的查询业务,避免join操作对性能造成损害。冗余最大的问题是一致性问题,由于数据存储在多个地方,一旦改动需要保证所有的副本都能同步改动。

第二个问题,扩容。分库分表的扩容,核心是路由方案。以比较通用的hash路由为例,假设扩容前的路由方案为:DB_ID = HASH(KEY) MOD 2,现在需要扩容,扩容的路由方案应该怎么定?一个基本原则就是不要造成数据的迁移。如果新方案为DB_ID=HASH(KEY) MOD 3,那么势必会造成之前的两个库里的数据均匀的散落在3个新库中,造成巨大的迁移成本,而使用DB_ID=HASH(KEY) MOD 4这个方案,将两个节点扩容为4个节点,则会简单很多,只需要将之前DB_ID为1的数据复制到DB_ID3,将DB_ID0的数据复制到DB_ID2,即可保证正确性,在进行简单的删除操作即可。

数据库冗余什么意思(数据库数据冗余是什么意思)

版权声明:本文内容由互联网用户投稿发布,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2211788188@qq.com 举报,一经查实,本站将立刻删除。如需转载请注明出处:https://www.wptmall.com/article/156549

为您推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注