前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【MySQL】可扩展性基本原则

【MySQL】可扩展性基本原则

作者头像
良月柒
发布2019-03-19 16:16:20
1.3K0
发布2019-03-19 16:16:20
举报
文章被收录于专栏:程序员的成长之路

概念

可扩展( Scalable ):表明数据库系统在通过相应升级(包括增加单机处理能力或者增加服务器数量)之后,能够达到提供更强的服务能力,提供更强处理能力

扩展性(Scalability):指一个数据库系统通过相应的升级之后所带来处理能力提升的难易程度

横向扩展(Scale Out):通过增加处理节点的方式来提高整体处理能力,简单来说就是通过增加机器来增加整体的处理能力

纵向扩展(Scale Up):通过增加当前处理节点的处理能力来提高整体的处理能力,简单来说就是通过升级现有服务器的配置

原则一: 事务相关性最小化

  • 进行 Scale Out 设计的时候合理设计切分规则,尽可能保证事务所需数据在同一个 MySQL Server 上,避免分布式事务。
  • 大事务切分成多个小事务,数据库保证各个小事务的完整性,应用控制各个小事务之间的整体事务完整性。
  • 结合上述两种解决方案,整合各自的优势,避免各自的弊端。

第一种切分规则难度大,维护成本高,应用程序难度低; 第二种切分规则简单,维护成本低,应用程序难度高; 第三种利用前两种优势做一个平衡,可以保证核心事务在同一个MySQL Server上,不重要的事务拆分为小事务和应用程序来保证或者避免该事务;

最后,事务越少越好

原则二: 数据一致性

BASE模型: 完全不同ACID模型,牺牲高一致性,获得可用性或可靠性 Basically Available:基本可用,支持分区失败(e.g. sharding碎片划分数据库) Soft state:软状态,状态可以有一段时间不同步,异步。 Eventually consistent:最终一致,最终数据是一致的就可以了,而不是时时高一致

简单可以理解为 非实时的一致性原则

就是应用系统通过相关的技术实现,让整个系统在满足用户使用的基础上,允许 数据短时间内处于非实时状态,而通过后续技术来保证数据在最终保证处于一致状态

原则三: 高可用及数据安全

1.系统横向扩展设计后,可扩展性提高,整体性能得到改善,但是可维护性变得更加困难,系统监控更难;

2.不论如何调整设计系统的架构,系统的整体可用性不能被降低;

3.必须保证在出现软/硬件故障的时候,能够保证数据不会出现丢失;


确保高可用及数据安全原则,可以通过冗余机制来保证。去除单点隐患,进行多份拷贝。

技术方面,可以通过Replication和Cluster技术实现

小结

不论如何设计框架,这些原则都是非常重要的

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-09-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员的成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概念
  • 原则一: 事务相关性最小化
  • 原则二: 数据一致性
  • 原则三: 高可用及数据安全
  • 小结
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档