高效数据架构:分表流程实践

news2024/10/6 20:29:27
前言

​ 随着业务的不断扩展,数据量激增成为不可避免的现象。当数据量达到某一临界点时,单一的数据表可能无法承载如此庞大的数据量,此时就需要考虑进行分库分表的策略。尽管业界普遍认为数据量达到1000万时就应考虑分表,但实际上,根据笔者所在公司的经验,即便是10亿规模的数据表,在C端业务中依然能够稳定运行。因此,分表的决策应基于对数据规模(数据行、B+树的高度)、数据结构以及业务需求的综合评估。

分表流程

在这里插入图片描述

如图所示,假如我们原因只有一个数据表,现在分到两个数据表,流程如下:

  1. 根据一致性 Hash 或其它算法对数据进行分表
  2. 修改 BIZ 层代码对新表和老表同步进行写、删、更新操作
  3. 写一个脚本把老表的旧数据迁移到新表
  4. 等数据完全一致,切读业务到新表,写、删、更业务还是在两个表上操作
    1. 继续观察一段时间,读业务无误,停止双写
    2. 读业务有误,切回老表
注意点
数据迁移过程可能存在数据不一致
  1. 例如数据迁移脚本读取一条数据到内存中
  2. 此时业务正好修改了这条数据
  3. 数据迁移脚本把修改前的数据同步到新表
  4. 出现数据不一致

解决方案

​ 写一个数据校验脚本对比新老数据表的数据是否一致,不一致则以老表为准,把数据同步到新表

数据表的扩展性

​ 随着业务的发展,数据表可能需要进一步的扩展,设计时考虑数据表的扩展性,预留足够的空间和接口以支持未来的扩展

结尾语

​ 随着数据量的不断增长,分库分表已成为现代数据库架构中不可或缺的一部分。通过本文的深入探讨,我们不仅理解了分表的必要性,也掌握了分表流程的关键步骤和注意事项。在实施分表策略时,我们必须综合考虑业务需求、数据结构和系统性能,以确保分表操作的顺利进行和数据的一致性。

​ 数据迁移和分表是一个持续的过程,需要我们不断地监控、评估和优化。通过精心设计的数据分片策略和业务逻辑层代码,我们可以有效地提高系统的扩展性和稳定性。同时,通过实施数据校验和监控机制,我们可以及时发现并解决数据一致性问题,保障业务的连续性和数据的准确性。

​ 在未来,随着技术的不断进步和业务需求的不断变化,我们可能需要面对更加复杂的数据管理和优化挑战。但只要我们保持学习和创新的态度,不断探索和实践,就能够应对这些挑战,构建更加高效、稳定和可扩展的数据库系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1817369.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

线程池 (重点)概述7大参数理解

目录 1、线程池思想概述 2、什么是线程池? 3、不使用线程池的问题 4、线程池的工作原理 5、线程池实现的API、参数说明 5.1、谁代表线程池? 5.2、如何得到线程池对象 5.3、ThreadPoolExecutor构造器的参数说明 6、线程池常见面试题 6.1、临时线程什么时候…

Vue + Asp.NET调试时出现的证书问题 (OpenSSL)

Vue Asp.NET调试时出现的证书问题 1. 证书过期问题步骤一:创建新的私钥步骤 2: 创建新的证书签名请求(CSR)步骤 3: 使用 CSR 和 CA 私钥签署新证书步骤 4: 替换或使用新证书 2. 证书不受信任问题步骤: 3. 安全证书不指定使用者可选名称步骤一: 删除已生…

java实现文件的压缩及解压

一、起因 开发中需要实现文件的压缩及解压功能,以满足某些特定场景的下的需要,在此说下具体实现。 二、实现 1.定义一个工具类ZipUtils,实现文件的压缩及解压,代码如下: import java.io.*; import java.nio.charset.Charset; impo…

网络安全等级保护基本要求 第1部分:安全通用要求

基本要求 第三级 安全物理环境 物理位置选择 a) 机房场地应选择在具有防震、防风和防雨等能力的建筑内; b) 机房场地应避免设在建筑物的顶层或地下室,否则应加强防水和防潮措施 物理访问控制 a) 机房出入口应配置电子门禁系统,控制、鉴…

Linux 基本指令3

date指令 date[选项][格式] %Y--年 %m--月 %d--日 %H--小时 %M--分 %S--秒 中间可用其他符号分割,不能使用空格。 -s 设置时间,会返回设置时间的信息并不是改变当前时间 设置全部时间年可用-或者:分割日期和时间用空格分隔&#xff…

自动驾驶场景下TCP协议参数优化调整案例分享

RTT 往返时间,从tcp协议栈决定发包,到收到回包的时间。 包含本地驱动,网卡硬件,网线,交换机,收包方处理的耗时。需注意如果开了delayed ack,协议栈未做特殊处理(默认没做&#xff…

攻防演练之-成功的钓鱼邮件溯源

书接上文,《网络安全攻防演练风云》专栏之攻防演练之-网络安全产品大巡礼二,这里。 演练第一天并没有太大的波澜,白天的时间过得很快。夜色降临,攻防演练中心内的灯光依旧明亮。对于网络安全团队来说,夜晚和白天并没有…

基于STM32和人工智能的智能家居监控系统

目录 引言环境准备智能家居监控系统基础代码实现:实现智能家居监控系统 4.1 数据采集模块4.2 数据处理与分析4.3 控制系统4.4 用户界面与数据可视化应用场景:智能家居环境监控与管理问题解决方案与优化收尾与总结 1. 引言 随着智能家居技术的发展&…

如何从微软官方下载Edge浏览器的完整离线安装包

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 正文内容 📒🚀 官方直链下载🚬 手动选择下载🎈 获取方式 🎈⚓️ 相关链接 ⚓️📖 介绍 📖 在网上搜索Microsoft Edge浏览器的离线安装包时,很多用户都会发现大部分都是在线安装包,无法满足他们在无网络环境下进…

【日常记录】【vue】vite-plugin-inspect 插件的使用

文章目录 1、vite-plugin-inspect2、安装3、使用4、链接 1、vite-plugin-inspect vite-plugin-inspect 可以让开发者在浏览器端就可以看到vue文件编译后的代码、vue文件的相互依赖关系 2、安装 npm i -D vite-plugin-inspect// vite.config.ts import Inspect from vite-plugi…

基于STM32的简易智能家居设计(嘉立创支持)

一、项目功能概述 1、OLED显示温湿度、空气质量,并可以设置报警阈值 2、设置4个继电器开关,分别控制灯、空调、开关、风扇 3、设计一个离线语音识别系统,可以语音控制打开指定开关、并且可以显示识别命令词到OLED屏上 4、OLED实时显示&#…

Nginx06-rewrite模块详解与实验

目录 写在前面Nginx06nginx rewriterewrite 模块return案例01 访问/admin/ 返回403案例02 域名间跳转 if案例03 只允许GET、POST请求,其他禁止访问 set案例04 设置是否处于维护状态,是则返回503,否则正常访问 rewrite案例05 域名跳转案例06 r…

htb_Blurry

端口扫描 8 按照教程注册安装clear ml 加载configuration的时候会报错 将json里的API,File Store的host都添加到/etc/hosts中 即可成功初始化 查找clear ml漏洞 发现一个cve-2024-24590 下面是一个利用脚本,但不能直接用 ClearML-vulnerability-e…

5G消息 x 融媒 | 媒体融合新入口

5G消息 x 融媒 | 媒体融合新入口 5G 消息是 5G 时代三大运营商联合手机厂商推出的平台型应用,5G 消息以短信为入口,以富媒体消息为媒介,具有权威真实、全面覆盖、精准投放、内容汇聚、开放共享等特点。这些特点符合当下融媒体发展的需求&…

ubuntu下使用cmake编译opencv4.8.0+ffmpeg4.2.2+cuda11.1

1.源码下载 (1)下载ffmpeg4.2.2、opencv4.8.0源码,这里提供一个百度网盘地址: 链接:https://pan.baidu.com/s/1pBksr0_RtKL0cM6Gsf2MGA?pwdcyai 提取码:cyai (2)解压所有文件 例…

c++实现二叉搜索树(上)

宝贝们,好久不见,甚是想念🤗小吉断更了差多有10多天,在断更的日子里,小吉也有在好好学习数据结构与算法,但是学的并不多而且学的并不是很认真。主要是中途笔记本屏出现问题了(这件事有点让小吉我…

迅狐短视频矩阵管理系统核心功能

一、多平台管理:连接多个主流自媒体平台,满足多平台、多账号、多角色的协调需求 在现如今的多元化媒体环境中,一个优秀的内容创作者需要同时管理多个自媒体平台,并以不同的身份角色展现自己。迅狐短视频矩阵管理系统强大的多平台…

RPC(远程过程调用):技术原理、应用场景与发展趋势

摘要: RPC(Remote Procedure Call)是一种通信协议,用于实现跨网络的进程间通信。它提供了一种简单高效的方式,使得分布式系统中的不同组件能够像调用本地函数一样调用远程函数。本篇博客将介绍RPC的基本概念&#xff0…

kafka 快速上手

下载 Apache Kafka 演示window 安装 编写启动脚本,脚本的路径根据自己实际的来 启动说明 先启动zookeeper后启动kafka,关闭是先关kafka,然后关闭zookeeper 巧记: 铲屎官(zookeeper)总是第一个到,最后一个走 启动zookeeper call bi…

虚拟声卡实现音频回环

虚拟声卡实现音频回环 一、电脑扬声器播放声音路由到麦克风1. Voicemeeters安装设置2. 音频设备选择 二、回声模拟 一、电脑扬声器播放声音路由到麦克风 1. Voicemeeters安装设置 2. 音频设备选择 以腾讯会议为例 二、回声模拟 选中物理输入设备“Stereo Input 1”和物理输出设…