大流量网站的三种Mysql数据库扩展方式

阳光穿透心脏的1/2处 2022-06-11 06:27 262阅读 0赞

我们知道当网站的访问量很大时候,会大大降低网站的运行速度,性能等等。随之就会出现一个非常严重的问题——体验。
接下里从三个方面说一下处理大流量网站的Mysq数据库的扩展布置方法。

  1. 读写分离

读写分离的实现过程:一般来说都是通过主从复制(Master-Slave)的方式来同步数据,

再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力这样的方案来进行部署与实施的。

2.垂直分区
当写入操作一旦增加的时候,那么主从数据库将花更多的时间的放在数据同步上,这个时候服务器也是不堪重负的;那么就有了数据的垂直分区,
数据的垂直分区思路是将写入作比较频繁的数据表,如用户表_user,或者订单表_orders,那么我们就可以把这个两个表分离出来,放在不同的服务器,
如果这两个表和其他表存在联表查询,那么就只能把原来的sql语句给拆分了,先查询一个表,在查询另一个,虽然说这个会消耗更过性能,
但比起那种大量数据同步,负担还是减轻了不少;
3.水平分区
但是可能采取垂直分区能撑一段时间,由于网站太火了,访问量又每日100w,一下子蹦到了1000w,这个时候可以采取数据的进行分离,
我们可以根据user的Id不同进行分配,如采取%2的形式,或者%10的形式,当然这种形式对以后的扩展有了很大的限制,
当我由10个分区增加到20个的时候,所有的数据都得重新分区,那么将是一个的很庞大的计算量;
以下提供几种常见的算法: 哈希算法:就是采用user_id%的方式; 范围:可以根据user_id字符值范围分区,如1-1000为一区,1001-2000则是另一个区等;
映射关系:就是将user_id存在的所对应的分区放在数据库中保存,当用户操作时先去查询所在分区,再进行操作;

以上几种操作:读写分离主要是操作上的扩展,垂直分区主要是对写入较频繁数据表的分离,水平分区主要是数据分离;

发表评论

表情:
评论列表 (有 0 条评论,262人围观)

还没有评论,来说两句吧...

相关阅读

    相关 边缘计算扩展IoT网络方式

    目前的网络中已经有64亿台设备连接,此外还新增了550万台新设备,因此物联网的兴起需要采用新的处理和分析需求的方法。充分利用物联网需要在设备和云之间实现强大的无缝连接,同时消除