TDSQL·进阶篇·分布式版本

weixin_44020914 2022-03-17 10:44:48

云数据库 MariaDB 是分布式数据库 TDSQL MySQL版 的单机版本,当您预估您的业务会急剧增长,单机版本已经无法支撑业务发展的场景时,可以使用分布式版本。

概述

数据切分与分片(sharding)

在高性能并发互联网架构中,性能瓶颈往往出现在数据库服务器,特别是当业务(用户)达到百万级用户规模以后,通过在数据层进行合理的数据切分(sharding),可以有效解决数据库性能、可伸缩等问题。数据库切分同样是从两个维度考虑:垂直切分(按功能切分)和水平切分。

  • 垂直切分是按功能切分,这种切分方法跟业务紧密相关,实施思路也比较直接,例如电商平台将数据按功能切分为会员数据库、商品数据库、交易数据库、物流数据库等。而垂直拆分并不能彻底解决压力问题,因为单台数据库服务器的负载和容量也是有限的,随着业务发展势必也会成为瓶颈,解决这些问题的常见方案就是水平切分了。
  • 水平切分是按照某种规则,将一个表的数据分散到多个物理独立的数据库服务器中,这些“独立”的数据库“分片”;多个分片组成一个逻辑完整的数据库实例。

分片规则

关系型数据库是一个二维模型,数据的切分通常就需要找到一个分片字段(shardkey)以确定拆分维度,再通过定义规则来实现数据库的拆分。如何找到合适的分片规则需要综合考量业务,这里介绍几种常见的分片规则:

  1. 基于日期顺序。如按年拆分,2015年一个分片,2016年一个分片。
    • 优势:简单明了,易于查找。
    • 劣势:当期(2016年)的热数据的服务器性能可能不足,而存储冷数据性能却闲置。
  2. 基于用户 ID 求模,将求模后字段的特定范围分散到不同库中。
    • 优势:性能相对均衡,相同用户数据在一个库中。
    • 劣势:可能导致数据倾斜(如设计的是商户系统,一个大商户数据能比几千个小商户的数据还多)。
  3. 将主键(primary key)求模,将求模后字段的特定范围分散到不同库中。
    • 优势:性能相对均衡,不容易出现数据倾斜的问题,相同主键的数据在一个库中。
    • 劣势:数据随机分散,某些业务逻辑可能需要跨分片 join 却不能直接支持。

另外,在分片的数据源管理方面,目前也有两种思路:

  1. 客户端模式:由业务程序模块中的配置来管理多个分片的数据源,分片的读写与数据整合在业务程序内进行。
  2. 中间件代理模式:在分片数据库前端搭建一个中间件代理,后端多个分片数据库对前端应用程序透明。

更多内容,请见:https://cloud.tencent.com/document/product/237/3262

...全文
351 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
M_Puker2018 2022-09-02
  • 打赏
  • 举报
回复

赞👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍👍

ArchSummit 2022全球架构师峰会北京站(公开)PPT汇总,共52份。 1、App 研发效能提升和性能优化实践.pdf 2、App工厂架构设计及在58集团应用.pdf 3、ArcoDesign:字节跳动企业设计系统实践与思考.pdf 4、TDSQL升级版架构和关键技术介绍_外部公开版.pdf 5、DDD、BFF 和API First 在百度企业应⽤服务的实践和思考.pdf 6、DevOps 助力用友 BIP 数字化转型提能增效.pdf 7、HarmonyOS ArkUI框架的实现原理和落地实践.pdf 8、NebulaGraph 如何轻松应对海量数据.pdf 9、NLP 应用中数据治理遇到的困难及解决方案.pdf 10、PG大规模在线数仓技术构架分享.pdf 11、Serverless时代下,企业微服务的降本思考与实践.pdf 12、TiDB 实践 HTAP 的架构进展和未来展望.pdf 13、阿里云弹性计算智能化监控诊断的探索和实践.pdf 14、阿里云上深度学习建模实践.pdf 15、百度 App Feed 流业务架构变迁思考和升级实践.pdf 16、百度移动生态研发效能度量体系及效能提升实践.pdf 17、从 ToC 到 ToB,云基础设施架构师如何进阶?.pdf 18、从混部到Serverless 化,腾讯自研业务云原生成本优化实践.pdf 19、第四范式面向机器学习的高可用高并发数据库.pdf 20、抖音直播亿级并发下的高可用技术实践.pdf 21、高性能 Kubernetes 元数据存储 KubeBrain 的设计思路和落地效果.pdf 22、基于 DDD 思想的酒店整体架构战略调整.pdf 23、基于 DDD 思想的应用架构 COLA 在华为服务研发的落地实践.pdf 24、基于Harvester实现容器与虚拟机的混合应用架构.pdf 25、基于云原生消息系统构建实时数据仓库.pdf 26、架构师如何弥合理想与现实的冲突.pdf 27、可插拔架构下的数据增强计算引擎实现.pdf 28、快手数据治理在质量方向上的实战.pdf 29、快手微服务架构体系实践.pdf 30、面向未来的 Vue3.0 桌面组件设计.pdf 31、腾讯云数据库云上SaaS生态演进.pdf 32、企业如何利用云厂商能力构建自己的分布式云.pdf 33、汽车行业变革背景下的 营销系统架构演进.pdf 34、去哪儿网接口自动化测试探索实践.pdf 35、去哪儿网自动化测试系统 TARS 的设计迭代方案.pdf 36、如何快速实现 Data Fabric 数据架构.pdf 37、如何做好互联网亿级流量架构.pdf 38、数据驱动的企业组织文化.pdf 39、数据治理在成本优化上的实践.pdf 40、推荐技术在 vivo 互联网商业化业务中的实践.pdf 41、推荐系统的基本问题及系统优化路径.pdf 42、网易流批一体的实时数据湖实践.pdf 43、物流场景下的架构稳定性实践.pdf 44、云上成本管理如何做.pdf 45、云原生数据库管控探索和实践.pdf 46、智能化基础架构变⾰驱动⼈机协同决策.pdf 47、中国移动管理信息域数智化帮助台运维实践.pdf 48、专家?架构师?经理人?技术人如何做好职业选择.pdf 49、字节DevMind 平台架构设计和技术应用.pdf 50、字节跳动数据平台的实践与演进.pdf 51、组件化预测系统在供应链行业的实践.pdf

87

社区成员

发帖
与我相关
我的任务
社区描述
TDSQL开发者
其他 企业社区
社区管理员
  • csdnsqst0015
  • kikokingzz
  • karina17
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

社区初立,为了鼓励小友们在社区中积极互动,现在有一个活动如下:

试试用AI创作助手写篇文章吧