终于用上分库分表了!

分库分表后分页查询性能提升500%?5种方法深度解析与实战对比! 分库分表分页查询优化指南 在大数据场景下,分库分表后的分页查询常因跨库排序、偏移量过大导致性能骤降。核心问题包括深分页扫描、全局排序开销和数据倾斜。 5种优化方法对比 游标分页(推荐):利用上一页末尾记录作为游标,避免偏移量,性能提升20倍。 二次查询法:先预查分片范围再精准查询,减少数据传输。 中间表法:构建索引表缓存分片键,适合多条件查询。 Elasticsearch辅助:借助搜索引擎实现毫秒级分页,但存在数据同步延迟。 禁止跳页:强制逐页访问,适合C端下拉加载场景。 实战场景选择 用户订单分页:游标分 阅读详情

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 10:33 更新文章,每天掉亿点点头发...

源码精品专栏

 

1. 什么是分库分表

分库 :就是一个数据库分成多个数据库,部署到不同机器。

5ce21d9835896e58f82165adf9ee0e9a.png

分表 :就是一个数据库表分成多个表。

c2d5bb8c41161a3f07a66c4d5c2c82fc.png

基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能。

项目地址:https://github.com/YunaiV/ruoyi-vue-pro

2. 为什么需要分库分表

2.1 为什么需要分库呢?

如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考虑拆分数据库。从这几方面来看:

  • 磁盘存储

业务量剧增,MySQL单机磁盘容量会撑爆,拆成多个数据库,磁盘使用率大大降低。

  • 并发连接支撑

我们知道数据库连接是有限的。在高并发的场景下,大量请求访问数据库,MySQL单机是扛不住的!当前非常火的微服务架构 出现,就是为了应对高并发。它把订单、用户、商品 等不同模块,拆分成多个应用,并且把单个数据库也拆分成多个不同功能模块的数据库(订单库、用户库、商品库 ),以分担读写压力。

2.2 为什么需要分表?

数据量太大的话,SQL的查询就会变慢。如果一个查询SQL没命中索引 ,千百万数据量级别的表可能会拖垮整个数据库。

即使SQL命中了索引,如果表的数据量超过一千万 的话,查询也是会明显变慢的 。这是因为索引一般是B+树结构,数据千万级别的话,B+树的高度会增高,查询就变慢啦。

小伙伴们是否还记得,MySQL的B+树的高度怎么计算的呢? 顺便复习一下吧

InnoDB存储引擎最小储存单元是页,一页大小就是16k。B+树叶子存的是数据,内部节点存的是键值+指针。索引组织表通过非叶子节点的二分查找法以及指针确定数据在哪个页中,进而再去数据页中找到需要的数据,B+树结构图如下:

58d88f63a68bc59f695dd00212896143.png

假设B+树的高度为2的话,即有一个根结点和若干个叶子结点。这棵B+树的存放总记录数为=根结点指针数*单个叶子节点记录行数。

  • 如果一行记录的数据大小为1k,那么单个叶子节点可以存的记录数  =16k/1k =16.

  • 非叶子节点内存放多少指针呢?我们假设主键ID为bigint类型,长度为8字节 (面试官问你int类型,一个int就是32位,4字节 ),而指针大小在InnoDB源码中设置为6字节,所以就是 8+6=14 字节,16k/14B =16*1024B/14B = 1170

因此,一棵高度为2的B+树,能存放1170 * 16=18720条这样的数据记录。同理一棵高度为3的B+树,能存放1170 *1170 *16 =21902400,大概可以存放两千万左右的记录。B+树高度一般为1-3层,如果B+到了4层,查询的时候会多查磁盘 的次数,SQL就会变慢。

因此单表数据量太大,SQL查询会变慢,所以就需要考虑分表啦。

基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba 。

项目地址:https://github.com/YunaiV/onemall

3. 如何分库分表

3.1 垂直拆分

d326e654233ecf422739d8ec0333df9c.png
3.1.1 垂直分库

在业务发展初期,业务功能模块比较少,为了快速上线和迭代,往往采用单个数据库来保存数据。数据库架构如下:

c9f7b31a2a284fa1329cbdffcaf48ff4.png

但是随着业务蒸蒸日上,系统功能逐渐完善。这时候,可以按照系统中的不同业务进行拆分,比如拆分成用户库、订单库、积分库、商品库 ,把它们部署在不同的数据库服务器,这就是垂直分库 。

垂直分库,将原来一个单数据库的压力分担到不同的数据库,可以很好应对高并发场景。数据库垂直拆分后的架构如下:

c439b8a1689d69b55df163013e4e5b4c.png
3.1.2 垂直分表

如果一个单表包含了几十列甚至上百列,管理起来很混乱,每次都select *的话,还占用IO资源。这时候,我们可以将一些不常用的、数据较大或者长度较长的列 拆分到另外一张表。

比如一张用户表,它包含user_id、user_name、mobile_no、age、email、nickname、address、user_desc,如果email、address、user_desc等字段不常用,我们可以把它拆分到另外一张表,命名为用户详细信息表。这就是垂直分表

36e64cb5ad0e974634ee0a7bd9d16466.png

3.2 水平拆分

3.2.1 水平分库

水平分库是指,将表的数据量切分到不同的数据库服务器上,每个服务器具有相同的库和表,只是表中的数据集合不一样。它可以有效的缓解单机单库的性能瓶颈和压力。

用户库的水平拆分架构如下:

5426346871d798b68b22c7758538f486.png
3.2.2 水平分表

如果一个表的数据量太大,可以按照某种规则(如hash取模、range),把数据切分到多张表去。

一张订单表,按时间range拆分如下:

f1e716f184990c4ccbb82e7ac7527581.png

3.3. 水平分库分表策略

分库分表策略一般有几种,使用与不同的场景:

  • range范围

  • hash取模

  • range+hash取模混合

3.3.1 range范围

range,即范围策略划分表。比如我们可以将表的主键,按照从0~1000万的划分为一个表,1000~2000万划分到另外一个表。如下图:

8fcc362d244905f1ea87825f1b69adb5.png

当然,有时候我们也可以按时间范围来划分,如不同年月的订单放到不同的表,它也是一种range的划分策略。

这种方案的优点:

  • 这种方案有利于扩容,不需要数据迁移。假设数据量增加到5千万,我们只需要水平增加一张表就好啦,之前0~4000万的数据,不需要迁移。

缺点:

  • 这种方案会有热点问题,因为订单id是一直在增大的,也就是说最近一段时间都是汇聚在一张表里面的。比如最近一个月的订单都在1000万~2000万之间,平时用户一般都查最近一个月的订单比较多,请求都打到order_1表啦,这就导致数据热点 问题。

3.3.2 hash取模

hash取模策略:指定的路由key(一般是user_id、订单id作为key)对分表总数进行取模,把数据分散到各个表中。

比如原始订单表信息,我们把它分成4张分表:

549958bf75b642d9d78595c9dbb5b94e.png
  • 比如id=1,对4取模,就会得到1,就把它放到t_order_1;

  • id=3,对4取模,就会得到3,就把它放到t_order_3;

这种方案的优点:

  • hash取模的方式,不会存在明显的热点问题。

缺点:

  • 如果一开始按照hash取模分成4个表了,未来某个时候,表数据量又到瓶颈了,需要扩容,这就比较棘手了。比如你从4张表,又扩容成8张表,那之前id=5的数据是在(5%4=1,即t_order_1),现在应该放到(5%8=5,即t_order_5),也就是说历史数据要做迁移了 。

3.3.3 range+hash取模混合

既然range存在热点数据问题,hash取模扩容迁移数据比较困难,我们可以综合两种方案一起嘛,取之之长,弃之之短。

比较简单的做法就是,在拆分库的时候,我们可以先用range范围 方案,比如订单id在0~4000万的区间,划分为订单库1;id在4000万~8000万的数据,划分到订单库2,将来要扩容时,id在8000万~1.2亿的数据,划分到订单库3。然后订单库内,再用hash取模 的策略,把不同订单划分到不同的表。

0810d430f0076279876f49d3410ffb4e.png

4. 什么时候才考虑分库分表呢?

4.1 什么时候分表?

如果你的系统处于快速发展时期,如果每天的订单流水都新增几十万,并且,订单表的查询效率明变慢时,就需要规划分库分表了。一般B+树索引高度是2~3层最佳,如果数据量千万级别 ,可能高度就变4层了,数据量就会明显变慢了。不过业界流传,一般500万数据就要考虑分表 了。

4.2 什么时候分库

业务发展很快,还是多个服务共享一个单体数据库,数据库成为了性能瓶颈,就需要考虑分库了。比如订单、用户等,都可以抽取出来,新搞个应用(其实就是微服务思想),并且拆分数据库(订单库、用户库)。

5. 分库分表会导致哪些问题

分库分表之后,也会存在一些问题:

  • 事务问题

  • 跨库关联

  • 排序问题

  • 分页问题

  • 分布式ID

5.1 事务问题

分库分表后,假设两个表在不同的数据库,那么本地事务已经无效啦,需要使用分布式事务了。

5.2 跨库关联

跨节点Join的问题:解决这一问题可以分两次查询实现

5.3 排序问题

跨节点的count,order by,group by以及聚合函数等问题:可以分别在各个节点上得到结果后在应用程序端进行合并。

5.4 分页问题

  • 方案1:在个节点查到对应结果后,在代码端汇聚再分页。

  • 方案2:把分页交给前端,前端传来pageSize和pageNo,在各个数据库节点都执行分页,然后汇聚总数量前端。这样缺点就是会造成空查,如果分页需要排序,也不好搞。

5.5 分布式ID

数据库被切分后,不能再依赖数据库自身的主键生成机制啦,最简单可以考虑UUID,或者使用雪花算法生成分布式ID。

6. 分库分表中间件

目前流行的分库分表中间件比较多:

  • cobar

  • Mycat

  • Sharding-JDBC

  • Atlas

  • TDDL(淘宝)

  • vitess

49719345d6becf39ccc2aa17b3841ade.png

欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

15ddc586ab8cd576f45be2185215f820.png

已在知识星球更新源码解析如下:

3bc8d8da65d35eb6d0277fcbe9e8b7fa.png

1756e077f58f861698e7d03805696de7.png

f22f19e15ec263e9eaf37cd941517fff.png

687a7d56f121750f3862b65b41351cc0.png

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 101 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

文章有帮助的话,在看,转发吧。
谢谢支持哟 (*^__^*)
美团三面:8000万订单查不动,一定要分库分表吗? 本文探讨了如何高效解决美团外卖8000万行订单表的查询性能问题,提出"异构索引+蚕食式归档"的轻量化治理方案。通过Elasticsearch卸载复杂查询压力,利用Canal实现MySQL与ES实时同步;采用pt-archiver工具小批量迁移冷数据,保持热表规模在500万行以内。方案避免了分库分表带来的分布式事务等问题,强调通过冷热分离、读写解耦来维持数据库"轻盈"状态,同时设计了状态位、离线核对等机制确保数据一致性。最后总结了"大表治理"的实战口 阅读详情

相关推荐

科研指南:IEEE期刊LaTeX/Word模板下载与使用全解析

本文详细解析了IEEE期刊LaTeX/Word模板的下载与使用技巧,帮助科研人员高效完成论文排版。从官方模板获取入口到LaTeX文档结构配置,再到Word样式管理与常见问题解决方案,全面覆盖投稿准备的关键步骤。特别针对数学公式、参考文献和图片处理等难点提供实用建议,助力学术写作规范化。

weixin_28396629的博客 567

芋道 Spring Boot 分库分表入门

点击上方“芋道源码”,选择“设为星标”做积极的人,而不是积极废人!源码精品专栏原创 | Java 2020 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络...

芋艿V 1216

【sap2000】部分模型通过.s2k文件合并模型generating a global model through partial models by .s2k text file

现在需要通过选项File → Import → SAP2000 .s2k Text File → Add to existing model(如果使用其中一个部分模型作为基础)或New model(如果使用新文件)添加部分模型,并使用以下导入选项。模型A(阶段1/5) Model A (Phase 1/5)模型B(阶段2/5) Model B (Phase 2/5)模型C(阶段3/5) Model C (Phase 3/5)模型E(阶段5/5) Model E (Phase 5/5)

hmywillstronger的博客 1753

拒绝盲目跟风,分库分表真的不是万能的!

???? 这是一个或许对你有用的社群???? 一对一交流/面试小册/简历优化/求职解惑,欢迎加入「芋道快速开发平台」知识星球。下面是星球提供的部分资料:《项目实战(视频)》:从书中学,往事上“练”《互联网高频面试题》:面朝简历学习,春暖花开《架构 x 系统设计》:摧枯拉朽,掌控面试高频场景题《精进 Java 学习指南》:系统学习,互联网主流技术栈《必读 Java 源码专栏》:知其然,知其所以然????这是一个或许...

芋艿V 177

PCB测试点

PCB测试点

qq_31444421的博客 1万+

Android双目摄像头(RGB+IR)实时预览与人脸活体检测实战指南

本文详细介绍了Android双目摄像头(RGB+IR)实时预览与人脸活体检测的实战指南。通过双摄同步预览、人脸检测与活体判断等技术实现,提升安全认证的准确性和鲁棒性。文章还提供了开发环境搭建、常见问题解决方案及性能优化建议,帮助开发者快速掌握双目摄像头在Android平台的应用。

vulkan6gpu的博客 700

yudao-cloud集成shardingsphere-jdbc实现读写分离和分库分表

本文主要是讲解一下yudao-cloud如何集成shardingsphere-jdbc,在使用yudao-cloud进行开发时,针对特定业务场景需要多数据源、主从复制、分库分表。比如日志、订单、用户等,废话不多说直接开干!本人第一次接触此类场景,仅以此篇记录一下yudao-cloud在不改动其源码的前提下如何集成shardingsphere-jdbc至此yudao-cloud集成shardingsphere-jdbc已全部完成,可以针对特定表进行分表配置了。也可以针对多库多表进行配置,详细配置去官网查看。

qq_36664288的博客 2102

SAC安装与相关库文件(.so)的安装

摘要 SAC: Seismic Analysis Code 是用于地震信号处理的一套软件。 本文将介绍SAC的安装,以及安装时遇到的一些问题。主要是一些动态库(lib**.so)找不到的问题。 本文的环境 64位的 Ubuntu 16.04 64位的系统是安装出现问题的主要原因 1. SAC获取与安装 SAC 的安装,只需要解压,然后修改环境变量即可!!!不需要任何编译!!! 1.1. SAC 获取与解压 SAC软件获取地址:http://ds.iris.edu/ds/nodes/dmc/forms/s.

WangCY的博客 4336

什么是分库分表?如何分库分表?(附大厂分库分表实例)

数据库调优之分库分表

m0_74315688的博客 7515

Hifiasm参数调优实战:当N50不理想时的7个排查方向与解决方案

本文详细解析了Hifiasm参数调优实战,针对基因组组装中N50不理想的7个排查方向与解决方案。通过调整--hom-cov、-D、-N等核心参数,结合HiFi数据和参考基因组分析,有效提升组装质量。文章以猪毛菜基因组为例,展示了从2.1MB到4.3MB的N50优化过程,为生物信息学研究者提供实用指南。

weixin_30642561的博客 426

从入门到精通:3D视觉与SLAM实战全流程 mastery 教程

本文系统介绍了3D视觉与SLAM技术的应用前景、核心技术和实战路径。3D视觉通过RGB-D相机、激光雷达等传感器获取环境三维信息,SLAM技术实现自主定位与地图构建,二者结合广泛应用于自动驾驶、机器人导航等领域。文章详细拆解了点云处理、视觉里程计、回环检测等关键技术,并提供了ORB-SLAM2算法复现、语义SLAM开发的实战教程,涵盖硬件选型、环境配置到代码实现全流程。最后规划了从入门到专家的学习路径,推荐了相关书籍、开源项目和数据集资源,为读者掌握这一前沿技术提供了完整指南。

m0_71589036的博客 136

分库分表介绍

目录 一、前言 二、何谓数据切分? 三、垂直切分 1、垂直分库 2、垂直分表 3、垂直切分优缺点 4、拆分需考虑的业务因素 四、水平切分 1、水平分库 2、水平分表 3、水平切分优缺点 五、垂直与水平切分的联合使用 六、数据分片规则 1、Hash取模分表 2、数值Range分表 3、一致性Hash算法 七、分库分表带来的问题 1、分布式事务问题 2、跨节点关联查询Join 问题 3、跨节点分页、排序、函数问题 4、全局主键避重问题 5、数据迁移问题...

大道至简,持之以恒! 1万+

【AI Agent系列】【阿里AgentScope框架】深入源码:Msg是如何转变成模型需要的Prompt形式的?多模态Prompt如何构建?

前面咱们学习AgentScope,在使用Agent来对话时,输入为一个 Msg 对象,不能是字符串,然后在Agent内部,会将Msg对象转换为模型接受的Prompt。那 AgentScope 如何根据 Msg 形成相应模型接收的Prompt结构的?如何使用 Msg 带入更多的参数,传递给大模型呢?

同学小张的博客 1535

终于用上分库分表了,什么样的业务场景需要使用,一文带你了解

大家好,今天跟大家聊聊分库分表。什么是分库分表为什么需要分库分表如何分库分表什么时候开始考虑分库分表分库分表会导致哪些问题分库分表中间件简介分库:就是一个数据库分成多个数据库,部署到不同机器。分表:就是一个数据库表分成多个表。

程序源日志的博客 907

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

终于用上分库分表了,你知道我等你等了多久吗?整整一个世纪。

前言 大家好,今天跟大家聊聊分库分表。 什么是分库分表 为什么需要分库分表 如何分库分表 什么时候开始考虑分库分表 分库分表会导致哪些问题 分库分表中间件简介 1. 什么是分库分表 分库:就是一个数据库分成多个数据库,部署到不同机器。 分表:就是一个数据库表分成多个表。 2. 为什么需要分库分表 2.1 为什么需要分库呢? 如果业务量剧增,数据库可能会出现性能瓶颈,这时候我们就需要考虑拆分数据库。从这几方面来看:

m0_67322837的博客 230

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

数据库分库分表

为什么需要分库分表 为什么需要分库 1、随着业务体量的提升,单机磁盘很容易撑爆,拆分成多个数据库,磁盘使用率会大大降低; 2、数据库的连接是有限的。在高并发场景下,大量请求访问数据库是扛不住的,微服务架构的出现,就是为了应对高并发:将不同业务类型的模块拆分成多个应用,将单个数据库拆分成多个不同功能模块的数据库,以分担读写压力。 分什么需要分表 1、在数据量很大的情况下,SQL查询会变慢; 2、如果在索引命中或没有命中的情况下,SQL查询也是会明显变慢的。因为索引一般是B+数结构,千万数据量下,B+数的高度会

qq_44726330的博客 518

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MySQL分库分表、读写分离

1. 分库分表 分库分表解决了数据库的存储压力。 1.1 分库 假设数据库中有两张表分别是用户表和订单表。如果要分库的话现在你需要买两台机子,搞两个数据库分别放在两台机子上,并且一个数据库放用户表,一个数据库放订单表。 这样存储压力就分担到两个服务器上了,但是会带来新的问题,所以东西变复杂了都会有新的问题产生。 连表查询问题 也就是join了,之前在一个数据库里面可以用上join用一条sql语句就可以联表查询得到想要的结果,但是现在分为多个数据库了,所以join用不上了。就比如现在要查注册时间在2019年之

学而不思则忘 697

精选(17) 面试官:说说Mysql数据库分库分表,并且会有哪些问题

之前一篇文章已经谈到了数据库集群之主从集群也就是读写分离,也提到了读写分离其实只是分担了访问的压力,但是存储的压力没有解决。 存储的压力说白了就是随着系统的演化,需求的增加,可能表的数量会逐渐增多,比如一段时间上个新功能就得加个表。并且随着用户量的增多类似用户表的行数肯定会增多,订单表的数据肯定会随着时间而增多,当这种数据量达到千万甚至上亿的时候,读写分离就已经满足不了,读写性能下降严重。 也就是...

cowbin2012的专栏 1万+

数据库优化上来就分库分表?面试官:您根本不懂底层原理

目录 数据库优化上来就分库分表?面试官:您根本不懂底层原理 常常面试会碰到,面试官询问数据库优化方面的问题。很多伙伴上来就是分库分表操作,听起来有道理,可您实操尝试过吗,有针对分类各种场景情况吗?本文主要分析数据库分库分表会有哪些问题阐述。 一.数据库分库分表 分库 分库讲白了就是比如现在你有一个数据库服务器,数据库中有两张表分别是用户表和订单表。如果要分库的话现在你需要买两台机子,搞两个数据库分别放在两台机子上,并且一个数据库放用户表,一个数据库放订单表 这样存储压力就分担到两个服..

yxw22的专栏 377

架构师速成8.3-可用性之分库分表

有状态分布式,涉及的知识就比较多了,不过我们可以拿几个现实的例子由浅入深的来理解。 数据库的分库分表 假设你是一个开发负责人,开始使用单机的数据库,突然一天数据库硬盘挂掉了。你没有做备份,然后就没有然后了。进入第2个公司,你意识到备份的重要性,每天定时备份到另一台机器,突然有一天,数据库硬盘挂掉了。你心想幸好我有备份,然后巴拉巴拉的恢复起来,用了2个小时。老板说不错,但是—-我们因为宕

for5million的专栏 1976

面试官:说说Mysql数据库分库分表,并且会有哪些问题?

之前一篇文章已经谈到了数据库集群之主从集群也就是读写分离,也提到了读写分离其实只是分担了访问的压力,但是存储的压力没有解决。 存储的压力说白了就是随着系统的演化,需求的增加,可能表的数量会逐渐增多,比如一段时间上个新功能就得加个表。并且随着用户量的增多类似用户表的行数肯定会增多,订单表的数据肯定会随着时间而增多,当这种数据量达到千万甚至上亿的时候,读写分离就已经满足不了,读写性能下降严重。 也就是...

weixin_30616969的博客 240

mysql联表多条去重_面试官:说说Mysql数据库分库分表,并且会有哪些问题?

之前一篇文章已经谈到了数据库集群之主从集群也就是读写分离面试官:说说Mysql读写分离,并且有哪些注意事项?,也提到了读写分离其实只是分担了访问的压力,但是存储的压力没有解决。存储的压力说白了就是随着系统的演化,需求的增加,可能表的数量会逐渐增多,比如一段时间上个新功能就得加个表。并且随着用户量的增多类似用户表的行数肯定会增多,订单表的数据肯定会随着时间而增多,当这种数据量达到千万甚至上亿的时候,...

weixin_39552472的博客 239

折磨程序员多年的难题,终于被腾讯解决了!

记得之前做过一个中型的互联网应用,为了应付海量数据和高并发,不得不硬着头皮做了分库分表,虽然技术成熟,但是运维非常复杂,按需扩展能力很差,尤其是当数据的规模和查询需求与之前的规划不一样的时候,调整起来非常的痛苦。在云计算和大数据时代,数据不仅越来越多,还越来越复杂。但是在TSQL-B中,系统会根据数据量自动完成分片和调度,当业务增长需要扩容时,仅需新增节点,数据会自动迁移至新节点,传统的分布式数据库扩容可能得“按月计算”,在TSQL-B这里缩减到了分钟级,整个过程上层业务无感知,非常方便。

码农翻身 1089
上一篇: 公司规定所有接口都用 POST请求?
下一篇: MySQL 暴跌!
公众号-芋道源码
博客等级 码龄10年 1634粉丝 377原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值