【一起学习Mysql】不得不知的Mysql的扩展性

本文介绍了Mysql在数据量和用户量增长时的扩展策略,包括向上扩展(垂直扩展)如增加硬件资源,向外扩展(水平扩展)如复制、拆分和数据分片,以及向内扩展如数据归档。同时探讨了Mysql集群和负载均衡在提高性能和可用性中的作用。此外,文章还提到了主从复制的核心——二进制日志和复制策略,以及数据库分库分表的实践。
摘要由CSDN通过智能技术生成

每日一句:我解过那么多数学题,可是我却解不开你的。

Mysql作为数据库,保存系统中所有的需要持久化的数据,那么当单机的性能和存储已经无法满足程序的要求了,就需要对Mysql进行扩展,下面就简单介绍一下Mysql的可扩展性

Mysql的扩展主要围绕的主要方面有:CPU、内存、磁盘、网络等

扩展的场景

Mysql在什么样的场景下,或者从什么维度认为Mysql是需要进行扩展了

  • 数据量:当数据量已经非常大,或者Mysql服务器的磁盘已经无法容纳更多的数据文件
  • 用户量:和数据量太大基本一致,用户量过大会导致存储大量的数据文件和让查询变慢
  • 相关数据表的大小:当一个数据表中的数据量已经非常大,或者说查询非常缓慢

当出现以上情况或者为更好的性能做规划时,那么就需要对Mysql的扩展性进行计划,Mysql的扩展有哪些方面呢?

向上扩展

向上扩展(垂直扩展),保持Mysql单机节点,增加性能更好的硬件来提高Mysql的性能,主要有增加更多的CPU、增加内存、增加磁盘等

  • 优点

    提升硬件可以保证Mysql单机,减少程序和Mysql的复杂性,便于维护,保证数据一致性

  • 缺点

    单机不能很好的保证高可用,以及单机的提升是相对有限

在数据量并不是特别大的场景下,采用这种方式较好,高可用可以使用定期备份的方式来弥补

向外扩展

向外扩展(水平扩展),可以从三个方面来进行水平扩展:复制、拆分、水平分片。主要为增加多个Mysql节点的方式

复制

主从复制的方式即复制的场景,将Mysql的数据保存到多个节点,来减少单点的负载,并且同时可以实现可用性。

  • 优点

    多个Mysql节点保证了可用性,并且降级了主库的负载,将数据分发到多个节点可以继续做读写分离等提高性能

  • 缺点

    多个Mysql节点在同步数据的时候会有一定的延迟,不能保证数据的一致性

数据的强一致性可以保证,不过就无法保证并发度和性能,分别有两种方式:

  1. Mysql5.5的特性—半同步复制
  2. 全同步复制
拆分

将Mysql按照不同的功能拆分为多个节点,每个节点连接不同的程序,可以用来做备份、报表等不同的业务,某些功能可以在执行的时候会增加Mysql的负载,所以单独的使用Mysql节点不会相互影响,可以提高效率和可用性

  • 优点

    根据不同的策略来拆分节点,保证单点的可用性和效率

  • 缺点

    拆分之后会增加系统的复杂性和Mysql的可维护,并且对于多个单点还是需要去垂直扩展

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值