下面的简单讲解一下:
我这里还没有讲数据库的集群和分布式包括主从复制、读写分离
大型网站需要存储海量的数据,为达到海量数据存储,高可用
,高性能一般采用冗余的方式进行系统设计,本质上其实就是通过空间换时间, 比如原来一台数据库服务器既负责读也负责写,现在读单独放在一台服务器上,写也单独放在一台服务器上,提高了读写效率。
一般有两种冗余的系统设计方式:读写分离和分库分表
读写分离:一般解决读比例远大于写比例的场景,可采用一主一备,一主多备或多主多备方式。
? 读写分离:
???读写分离简单的说是把对数据库读和写的操作分开对应不同的数据库服务器,这样能有效地减轻数据库压力,也能减轻io压力。 服务器推荐: 服务器配置推荐: 公司:腾正科技 企业Q:2885655958 配置:8核16线程 内存:16/32G 防御:160G 带宽: 100MG口带宽 衡阳G口大带宽 1G独享带宽 千兆带宽 5999/月 支持测试 主数据库提供写操作,从数据库提供读操作,其实在很多系统中,主要是读的操作,例如你浏览淘宝一般是看得多,写得少吧。当主数据库进行写操作时,数据要同步到从的数据库,这样才能有效保证每个数据库的完整性。
?? 主备:
这一般是数据库的安全策略,对于一些安全性要求比较高的系统,数据库通常是由主服务器和备份服务器组成,主备同时运行,主服务器有数据改动后,立刻会同步到备份服务器。 所以在日常运维工作中,为了防患于未然,经常会进行主备切换,就是把生产对接的服务器从主数据库切换到备份库上,使用备份库运行一段时间,看看备份库运行是否正常,数据是否正确等。
切换的操作只需将连接池中,数据库服务器的ip换成备份库ip就可以了。
?
数据库分库和表拆分(分库分表):
1.?业务拆分后:每个子系统需要单独的库
2.?如果单独的库太大,可以根据业务特性,进行再次数据库拆分,跟我们上面讲的拆分是类似的,比如我们可以把数据库分为商品分类库,产品库;
3.?分库后,如果表中有数据量很大的,则进行表拆分,一般可以按照id,时间等进行表拆分
4.?在分库,分表的基础上,进行读写分离
?
底层拆分的数据库进行分布式部署和集群部署。
|