0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

软件系统数据库的分库分表设计

h1654155333.5939 来源:laobabab 作者:laobabab 2024-08-22 11:39 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

软件系统数据库的分库分表设计

系统读写分离、分库分表技术实现采用MyCat中间件,MyCat 是一款开源(遵循 Apache License 2.0 协议)的大数据库集群中间件,用于搭建数据库的分布式集群,实现分库分表功能,解决数据库中海量数据存储和查询性能的问题。MyCat 还是一个数据库的集群中间件,主要实现 RDBMS 数据库集群的故障转移、负载均衡、读写分离等功能。

MyCat 的关键技术是分库分表,它通过将数据库中物理表中的数据切分成多个表分片,并将表分片存储在多个数据库节点上,从而构建分布式存储架构,提升巨表关联、排序、分组聚合等 OLAP 的能力。

分库分表的工作原理:拦截客户端提交的SQL语句并进行分析(如:分片分析、路由分析、读写分离分析、缓存分析等),然后将此SQL发往后端的真实数据库,并将返回的结果处理(如:数据合并)后再返回给客户端。如下图:

wKgZombGsDeAbXZcAADe-3smVHg464.png

分库分表单规则匹配1

wKgaombGsEKAO49QAAD6kbgo5tI468.png

分库分表单规则匹配2

MyCat 还是一个位于数据库和客户端之间,主要实现读写分离功能的集群中间件。主要解决在业务系统存在大量的读并发时,通过负载均衡提高查询请求吞吐量,并将多个数据库节点集群化管理,在多主集群中单点数据库故障时候选主节点切换。

wKgZombGsEuAYwMNAAC8A0J_N0E501.png

图90MyCat数据库集群

MyCat组件适用于的场景如下:

1)适用于 MySQL 、Oracle等主流数据库集群的读写分离、候选主节点切换、负载均衡等高可用模式;

2)适用于 MySQL 、Oracle等主流数据库集群的分表分库,对于单表数据超过1000 万的物理表进行分片,最大支持1000亿数据的单表分片;

3)适用于多租户应用,通过分库分表实现应用数据按照租户划分物理数据库存储。从租户的角度来看,个人应用的数据集约存储在独立的空间,从应用角度看,分布式数据库有利于海量数据的分析和查询;

4)适用于海量数据的统计、分析、研判等 OLAP 能力的支撑数据库,分库分表能够快速完成巨表关联、排序、分组聚合等数据计算功能;

5) 适用于海量数据的实时查询,如:百亿数据频繁查询的记录需要在3秒内反馈结果,包括主键查询、范围查询或其他属性查询的情况;

wKgZombGsFWAY_XCAADiAPckBkM865.png

​数据库集群部署拓扑图


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据库
    +关注

    关注

    7

    文章

    3993

    浏览量

    67742
  • 软件系统
    +关注

    关注

    0

    文章

    68

    浏览量

    9776
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    电磁环境数据库管理系统平台软件解析

    电磁环境数据库管理平台软件解析(精简版)
    的头像 发表于 09-15 21:00 130次阅读
    电磁环境<b class='flag-5'>数据库</b>管理<b class='flag-5'>系统</b>平台<b class='flag-5'>软件</b>解析

    mysql数据恢复—mysql数据库被truncate的数据恢复案例

    某云ECS网站服务器,linux操作系统,部署了mysql数据库。工作人员在执行数据库版本更新测试时,错误地将本应在测试执行的sql脚本在生产
    的头像 发表于 09-11 09:28 591次阅读
    mysql<b class='flag-5'>数据</b>恢复—mysql<b class='flag-5'>数据库</b><b class='flag-5'>表</b>被truncate的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    Oracle数据库故障: 某公司一台服务器上部署Oracle数据库。服务器意外断电导致数据库报错,报错内容为“system01.dbf需要更多的恢复来保持一致性”。该Oracle数据库
    的头像 发表于 07-24 11:12 438次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—服务器异常断电导致Oracle<b class='flag-5'>数据库</b>故障的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—MongoDB数据库文件丢失的数据恢复案例

    MongoDB数据库数据恢复环境: 一台操作系统为Windows Server的虚拟机上部署MongoDB数据库。 MongoDB数据库
    的头像 发表于 07-01 11:13 471次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—MongoDB<b class='flag-5'>数据库</b>文件丢失的<b class='flag-5'>数据</b>恢复案例

    数据库数据恢复—SQL Server数据库被加密如何恢复数据

    SQL Server数据库故障: SQL Server数据库被加密,无法使用。 数据库MDF、LDF、log日志文件名字被篡改。
    的头像 发表于 06-25 13:54 510次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server<b class='flag-5'>数据库</b>被加密如何恢复<b class='flag-5'>数据</b>?

    SQLSERVER数据库是什么

    SQL Server 是由微软公司开发的一款 关系型数据库管理系统(RDBMS) ,用于存储、管理和检索结构化数据。它是企业级应用中广泛使用的数据库解决方案之一,尤其适用于Window
    的头像 发表于 05-26 09:19 995次阅读

    MySQL数据库是什么

    开发、企业应用和大数据场景。以下是其核心特性和应用场景的详细说明: 核心特性 关系型数据库模型 数据(Table) 形式组织,由行(
    的头像 发表于 05-23 09:18 919次阅读

    数据库数据恢复——MongoDB数据库文件拷贝后服务无法启动的数据恢复

    MongoDB数据库数据恢复环境: 一台Windows Server操作系统虚拟机上部署MongoDB数据库。 MongoDB数据库
    的头像 发表于 04-09 11:34 662次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复——MongoDB<b class='flag-5'>数据库</b>文件拷贝后服务无法启动的<b class='flag-5'>数据</b>恢复

    数据库数据恢复—SQL Server附加数据库提示“错误 823”的数据恢复案例

    SQL Server数据库附加数据库过程中比较常见的报错是“错误 823”,附加数据库失败。 如果数据库有备份则只需还原备份即可。但是如果没有备份,备份时间太久,或者其他原因导致备份
    的头像 发表于 02-28 11:38 830次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—SQL Server附加<b class='flag-5'>数据库</b>提示“错误 823”的<b class='flag-5'>数据</b>恢复案例

    或许我们都被分库约束了思维

    作者:张俊杰 概述 这篇文章没什么太多的干货,纯纯是一篇讨论和思考帖。 从业数据库领域三年有余了,从分库中间件到数据库团队内核学到了很多
    的头像 发表于 02-21 09:51 447次阅读

    MySQL数据库的安装

    的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一, 具有成本低、速度快、体积小且开放源代码等优点。 全球数据库
    的头像 发表于 01-14 11:25 865次阅读
    MySQL<b class='flag-5'>数据库</b>的安装

    SqlServer数据恢复—SqlServer数据库数据恢复案例

    一块硬盘上存放的SqlServer数据库,windows server操作系统+NTFS文件系统。由于误操作导致分区损坏,需要恢复硬盘里的SqlServer数据库
    的头像 发表于 01-09 11:15 760次阅读
    SqlServer<b class='flag-5'>数据</b>恢复—SqlServer<b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复案例

    数据库是哪种数据库类型?

    数据库是一种部署在虚拟计算环境中的数据库,它融合了云计算的弹性和可扩展性,为用户提供高效、灵活的数据库服务。云数据库主要分为两大类:关系型数据库
    的头像 发表于 01-07 10:22 806次阅读

    数据库数据恢复—Mysql数据库表记录丢失的数据恢复流程

    Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库中无任何
    的头像 发表于 12-16 11:05 1002次阅读
    <b class='flag-5'>数据库</b><b class='flag-5'>数据</b>恢复—Mysql<b class='flag-5'>数据库</b>表记录丢失的<b class='flag-5'>数据</b>恢复流程

    Mybatis 拦截器实现单数据源内多数据库切换

    作者:京东保险 王奕龙 物流的分拣业务在某些分拣场地只有一个数据源,因为数据量比较大,将所有数据存在一张内查询速度慢,也为了做不同设备数据
    的头像 发表于 12-12 10:23 1604次阅读