第140期 为什么有人无脑吹分布式(20240126)

数据库管理140期 2024-01-26

  • 第140期 为什么有人无脑吹分布式(20240126)
    • 1 环境
    • 2 场景
    • 3 首席补刀
    • 总结

第140期 为什么有人无脑吹分布式(20240126)

作者:胖头鱼的鱼缸(尹海文)
Oracle ACE Associate: Database(Oracle与MySQL)
网思科技 DBA总监
10年数据库行业经验,现主要从事数据库服务工作
拥有OCM 11g/12c/19c、MySQL 8.0 OCP、Exadata、CDP等认证
墨天轮MVP、认证技术专家,ITPUB认证专家,OCM讲师
圈内拥有“总监”、“保安”、“国产数据库最大敌人”等称号,非著名社恐(社交恐怖分子)
公众号:胖头鱼的鱼缸;CSDN:胖头鱼的鱼缸(尹海文);墨天轮:胖头鱼的鱼缸;ITPUB:yhw1809。
除授权转载并标明出处外,均为“非法”抄袭。

先来保个命,其实最早这篇文章起的名是《为什么有些场景的数据天生不适合分布式》,但是本着拉流量需要做一个标题党的原则,万能的群友贡献了本文的名称,文章下面的内容与原始标题更加贴切。

1 环境

记得以前看到过一句话,在数据量突破PB后,只有分布式数据库能解决生产系统的问题;但是我也说过,那是没见过Exadata上开启EHCC跑PB级HTAP的。其实我想说的是,集中式数据库与分布式数据库在架构上没有优劣之分,得从数据库软件实力、硬件水平、业务开发水平、架构、业务场景等各方面来考量。
Oracle有一句话“数据是以存储为中心,而不是以使用为中心”,其实最终该选择何种架构的数据库,是以业务场景特性来的。

2 场景

从很多地方我们可以看到,使用分布式数据库需要更高的开发水平,需要简化业务SQL,拆分业务逻辑,而且需要明确的分片键。
那么从我最擅长服务的领域来举个例子看一下,那种应用场景的数据不适合分布式数据库:

  • 数据存在时序数据且种类多、并发高、实时性要求较高
  • 数据存在非时序数据,数据量大,数据条目类型复杂,单行数据量大
  • 非时序数据虽然可以以某种方式分片(比如地域),但是业务场景存在大量的分片内查询、跨多分片线性关联查询、跨多分片网状查询等需求
  • 时序数据无法按照非时序数据方式进行分片(比如时序按时间VS非时序按地域)
  • 多类型时序数据存在线性扩展关系
  • 时序数据需要通过非时序数据组合生成,几乎无点查场景

记住一点,上面几点不是单独存在业务场景中,而是组合起来的。当然,这种场景也能通过对数据层的大规模拆分业务逻辑,比如通过一个中间表(甚至是中间库)来关联各类型数据,但带来的问题就是,这个中间表(中间库)绝对是以集中式方式运转的(而且这个表绝对不会很小),而且原来整体集中式一条语句能实现的场景现在往往得分几步。

3 首席补刀

在写这篇文章的时候,与首席沟通了一下文章内容,首席随即甩来了补刀内容:

不仅仅是需要开发水平高。
其实还需要设计水平高。很多多表关联这是设计出来的,这个设计人员可能是DBA也可能是开发人员。如果表、视图、索引设置不当,那么SQL必然会复杂。
还有需要业务水平高。需求描述清晰准确,如果按照需求描述写出的SQL是没有谓词或者无法用到任何可能的索引,甚至是需求不合理的。那么必然会导致严重的问题。

总结

并不是所有的应用场景都适合分布式数据库,确切来说是表分片,在很多使用分布式数据库的地方,你会发现,用的最多的还是副本(单分片),或者说叫单表。
老规矩,知道写了些啥。这里还要感谢一下圈内兄弟姐妹们的支持,当我在“墨天轮2023年度优秀原创作者评选”(https://www.modb.pro/db/1749686728055148544)活动中获得了综合排名第二的好成绩,并获得“墨天轮2023年度墨力之星”的称号。
最后既然首席补刀了,再次推广一下薛首席的微信群,里面数据库圈大佬众多,日常进行技术、非技术讨论,由于群人数已超过300(上次宣传还是200),只能把首席微信二维码贴出来,想入速加:
image.png

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

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

相关文章

C++ 设计模式之解释器模式

【声明】本题目来源于卡码网(卡码网KamaCoder) 【提示:如果不想看文字介绍,可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 --什么是解释器模式(第22种设计模式) 解释器模式(Interpreter…

CodeGPT

GitCode - 开发者的代码家园 gitcode.com/ inscode.csdn.net/liujiaping/java_1706242128563/edit?openFileMain.java&editTypelite marketplace.visualstudio.com/items?itemNameCSDN.csdn-codegpt&spm1018.2226.3001.9836&extra%5Butm_source%5Dvip_chatgpt_c…

实力上榜!安全狗入选《CCSIP 2023中国网络安全行业业全景册(第六版)》多个细项

1月24日,Freebuf发布了《CCSIP 2023中国网络安全行业业全景册(第六版)》。 作为国内云原生安全领导厂商,安全狗也入选多个细分领域。 厦门服云信息科技有限公司(品牌名:安全狗)创办于2013年&…

学习gin框架知识的小注意点

Gin框架的初始化 有些项目中 初始化gin框架写的是: r : gin.New() r.Use(logger.GinLogger(), logger.GinRecovery(true)) 而不是r : gin.Default() 为什么呢? 点击进入Default源码发现其实他也是new两个中间件,(Logger&…

【并发编程】锁死的问题——如何解决?以及如何避免?

目录 1.如何解决 一、死锁的定义和原因 1.1 定义 1.2 原因 二、常见的死锁场景 2.1 线程间相互等待资源 2.2 嵌套锁的循环等待 2.3 对资源的有序请求 三、死锁排查的方法 3.1 使用jstack命令 3.2 使用jconsole 3.3 使用VisualVM 四、常见的解决方案 4.1 避免嵌套锁…

STK姿态分析(一)矢量组件

文章目录 内容简介一、卫星矢量二、卫星坐标平面三、卫星姿态球面 – 内容简介 接下来一系列文章将进行STK目标(卫星、导弹、火箭、飞机、船舶)姿态分析的仿真。本篇将使用矢量(vector)组件对卫星姿态、传感器指向等进行3D可视化…

注册表学习——注册表结构

简介:注册表是由很多项和值构成的。 HEKY_USERS(HKU) 主要保存默认用户及当前登录用户配置信息。 .DEFAULT 该项是针对未来创建的新用户所保存的默认配置项。 S-1-5-18等项 这些项叫作安全标识符(SID)用来表示Windows操…

Linux(linux版本 centos 7) 下安装 oracle 19c详细教程(新手小白易上手)

一、安装前准备 1、下载预安装包 wget http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm预安装包下载成功 2、下载oracle安装包 下载地址如下 https://www.oracle.com/cn/database/technologies…

渲染与创造之美:互为表里的艺术

在五彩斑斓的艺术世界中,渲染与创造是两股不可或缺的力量。它们之间的关系,恰如弓与箭,互为表里,共同塑造出无数令人叹为观止的视觉景象。创造之美是指通过创新思维和创造力,将想象具象化为现实,创造出新的…

引领未来:云原生在产品、架构与商业模式中的创新与应用

文章目录 一、云原生产品创新二、云原生架构设计三、云原生商业模式变革《云原生落地 产品、架构与商业模式》适读人群编辑推荐内容简介目录 随着云计算技术的不断发展,云原生已经成为企业数字化转型的重要方向。接下来将从产品、架构和商业模式三个方面&#xff0c…

最小覆盖子串(Leetcode76)

例题: 分析: 比如现在有字符串(s),s "ADOBECODEBANC", 给出目标字符串 t "ABC", 题目就是要从原始字符串(s)中找到一个子串(res)可以覆盖目标字符串 t &…

微信小程序(十六)slot插槽

注释很详细&#xff0c;直接上代码 上一篇 温馨提醒&#xff1a;此篇需要自定义组件的基础&#xff0c;如果不清楚请先看上一篇 新增内容&#xff1a; 1.单个插槽 2.多个插槽 单个插糟 源码&#xff1a; myNav.wxml <view class"navigationBar custom-class">…

师如灯塔,照我前行:我在誉天的RHCA认证之旅

时光荏苒&#xff0c;岁月如梭。2022年10月&#xff0c;我踏上了通向RHCA&#xff08;Red Hat Certified Architect&#xff09;证书的征程。2023年11月&#xff0c;我成功拿到了RHCA证书&#xff0c;也给这段旅程画上了圆满的句号。 而在这充满挑战和成长的旅程中&#xff0c;…

防火墙ip配置

如图所示需要配置该拓扑的ip 1.首先在交换机7上创建vlan 2 3 [Huanwei]vlan batch 2 3 2.分别进入0/0/3 和0/0/2接口 [Huawei-GigabitEthernet0/0/3]port link-type access [Huawei-GigabitEthernet0/0/2]port link-type access 3.定义所属vlan [Huawei-GigabitEthernet0…

【python爬虫】爬虫编程技术的解密与实战

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a; 爬虫】网络爬虫探秘⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 目录 &#x1f33c;实验目的 &#x1f…

数字孪生系统的难点

数字孪生系统的开发和实施涉及一些技术难点&#xff0c;这些难点需要综合应用多个领域的知识和技术来克服。以下是一些数字孪生系统开发中的技术难点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1…

【每日一题】4.LeetCode——杨辉三角

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有限&#xff0c;欢迎各位大佬指点&…

监听元素宽高变化---new ResizeObserver

参考&#xff1a;ResizeObserver API详解-CSDN博客 有的时候需要监听某个元素的宽高变化&#xff0c;这个时候可以使用JS的 resizeObserver 钩子函数。 用于监视元素的大小变化。它可以观察一个或多个 DOM 元素&#xff0c;以便在元素的大小或形状发生变化时触发回调函数。R…

安全用电管理平台方案介绍——Acrelcloud-6000

安全用电管理平台是一个针对电力系统安全管理的平台&#xff0c;旨在提供对电力设备和用电行为进行监控、分析和管理的解决方案。该平台结合了物联网技术、数据分析和远程监控等技术手段&#xff0c;能够实时监测、分析和预警电力系统的安全状况&#xff0c;以便及时采取措施防…

广州工业元宇宙赋能新型工业化,推动工业制造业数字化转型发展

随着科技的飞速发展&#xff0c;新型工业化的概念逐渐成为全球关注的焦点。在数字化转型的浪潮中&#xff0c;工业制造业的发展面临着巨大的机遇和挑战。广州作为中国南方的重要工业基地&#xff0c;积极探索工业元宇宙的赋能作用&#xff0c;以推动工业制造业的数字化转型发展…