当前位置: 首页 > news >正文

为什么跨数据库业务总是慢?

这个标题有点吸引人了。好几天没写东西了,今天想到这个写一下。

单机的性能其实并不差

  • 倚老卖老说一下,2003年的时候就是单机Oracle处理TB级别的数据量(虽然数据量说起来并不大,但是比如今很多企业的数据库的规模要大)
  • 每秒写入量从几百到几千都有。那时候还没有SSD硬盘。内存也是从8G慢慢发展过来的。而现如今有的朋友笔记本的内存都32G了。当时的情况下,我们就充分利用数据库的能力,也平稳的做到了压力承载。
  • 要说一下,过去也不需要Redis的缓存、因为SQL写的好读取的也都是内存。
  • 也没有用消息队列来缓冲,因为每秒几千写入数据库又不是承载不了。要是每秒几千万,那是单机处理不了。
  • 与其多一个环节,多一道流程,多一个故障点,还不如不要。

说说跨库

  • 用过Oracle和DB2这样的数据库的朋友应该听过一次名词,叫DBLink。A库的本地表和通过DBLink的B库的进行关联,效果通常不太好(反正比本地查询慢,应该都有这个感觉。就是:通常在一个数据库实例中的多表关联是比跨库执行要快的)
  • 我之前对不理解这个原理的场景的人讲,很多人仅仅是听过但是没有概念。可能是不太直观。

需要数字支持

  • 模拟场景:
  • 在一个数据库上有A和B两个表
  • 根据A表的数据更新B表。以500条为测试样本。(总数1万条)

image.png

  • 同库根据A表逐条提交更新B表 完成耗时: 11217 ms

  • 同库根据A表逐条提交更新B表 平均每条耗时: 22.43ms

  • 同库根据A表批量提交更新B表 完成耗时: 669 ms

  • 同库根据A表批量提交更新B表 平均每条耗时: 1.34ms

  • 批量比逐条快将近15倍。这是数据库本身刷脏机制决定的。批量就是比逐条提交快。

  • 那么跨数据库呢?

  • 在一个数据库上有A在另外一个数据库上有B两个表

  • 根据A表的数据更新B表。以500条为测试样本。(总数1万条)

image.png

  • 跨库根据A表逐条提交更新C表 完成耗时: 18970 ms
  • 跨库根据A表逐条提交更新C表 平均每条耗时: 37.94 ms
  • 跨库根据A表批量提交更新C表 完成耗时: 9149 ms
  • 跨库根据A表批量提交更新C表 平均每条耗时: 18.30 ms

解释

  • 可能会问,什么叫跨库根据A表去更新C表。我来解释一下,就是本来比如一个人买了两张车票付了一笔钱。但是退了一张车票。如果车票的表和支付的表(或者说账户的表)不是一个数据库。那么就是要从一个数据库查到了,通过接口或者服务去另外一个数据库更新。

个人观点

  • 如果分很多数据库的话,如果考虑一致性和性能的话,应该以事务的维度拆分。
  • 如果不考虑性能和一致性,其实怎么拆分都无所谓。
  • 如果中间再夹杂其他的组件或者环节,那只能是慢上加慢。如果没有达到数据库自身写入的瓶颈,建议不要增加其他环节来添堵。
http://www.dtcms.com/a/517283.html

相关文章:

  • 微服务架构与SpringCloudAlibaba全解析
  • 从 “瞎埋点” 到 “精准分析”:WebTagging 设计 + 页面埋点指南(附避坑清单)
  • 重构高阶智驾:天瞳威视以国产芯片,解锁Robotaxi平民化路径
  • 网站如何做水晶按钮做装修公司的网站
  • 苏州专业网站建设设计网站正常打开速度
  • 台州品牌网站设计androidstudio开发app教程
  • 基于C++ UA Server SDK开发高性能与跨平台 OPC UA 服务器
  • 操作系统 进程(4)上下文切换与系统调用
  • Kotlin和Java在匿名内部类和接口的使用中的区别及对比
  • mysql做网站怎么查看数据库坪山住房及建设局网站
  • 河北省建设局网站网站建设公司深圳
  • Request method ‘POST‘ not supported,问题分析和解决
  • KH|记录KingHistroian4.0卸载过程
  • Spring MVC 接口匹配性能优化:.do后缀引发的性能瓶颈分析
  • ps图做ppt模板下载网站有哪些创意设计生活用品
  • Windows API 文件结构与功能分类详解
  • 网站建设费开票收候开在哪个类别里做用户名验证的网站服务器
  • 常熟制作网站的地方wordpress解决速度慢
  • 自己可以做网站推广吗最新的新闻 最新消息
  • Redis不停机升级5.0.3->8.0.4
  • 做网站语言排名2018网站开发的方法和步骤
  • 网页设计入门首先要学什么企业网站优化与推广
  • 抓住园艺消费升级!亚马逊卖家如何从“卖单品”升级为“做品牌”
  • FPGA-ZYNQ学习对BD的保存与应用
  • 博罗县建设局网站免费好玩的网页游戏
  • 强化运动控制领域布局,杰美康机电授权世强硬创代理
  • 容器适配器、关联容器的相关算法题目
  • 微网站的好处优秀产品设计公司哪家好
  • 树莓派Pico 2W 开发环境搭建
  • 零基础从头教学Linux(Day 54)