mysql部署方案

346 阅读2分钟

MySQL部署方案

1 单机模式,如下图左一

优点:架构简单,节省资源

适用场景:小项目,资源紧张,单表字段不多,数据量千万以下

2 读写分离模式,如下图二

特点:新增数据库中间件,下图是一主两从的形式,由数据库中间点向mysql主节点写入数据,然后从节点根据binlog文件,复制主节点的数据。web应用向从节点读取数据

适用场景:读多写少,单表数据量千万以下

3 分片模式,如下图右一

特点:新增数据库中间件,由数据库中间件对数据进行路由到不同数据库,每个数据库表结构一样,实际上每个数据库的数据是所有数据的子集。

试用场景:数据量大过千万级

路由方案:区间,hash等

image-20220628112246655.png

4 读写分离和分区结合,如下图一

适用场景:互联网硬件资源充足,且数据量大,需要高可用

image-20220628112337649.png

分库分表

1 水平分表

将一个库中,同一个表中的数据按一定规则拆分到多个表中

优化提升:

优化单一表数据量过大而产生的性能问题

避免IO争抢锁并减少锁表的几率

2 垂直分表

将一个宽表的表字段按访问频次,是否是最大字段的原则,拆分为多个表,可以使业务清晰。应该尽量避免联表查询。这里还涉及到一个知识点,mysql跨页问题

mysql一页能存储16kb的数据,所以在同一页中,采用垂直分表可以存储更多的行,避免跨页查询带来的性能问题。

个人简单总结,如果有不对的地方,欢迎大家指正和交流