第133期 为什么一些场景下Oracle很难被替换掉(20240113)

数据库管理133期 2024-01-13

  • 第133期 为什么一些场景下Oracle很难被替换掉(20240113)
    • 1 数据量
    • 2 架构
    • 3 应用改造
    • 4 Exadata和融合数据库
    • 总结

第133期 为什么一些场景下Oracle很难被替换掉(20240113)

今天在薛首席的群里,聊到一些应用场景和数据库的事情,讲到很多国产数据库也在朝All in One的融合方向发展,但是很多数据库连一件事情都还没做好,发展充满了挑战、机遇与矛盾。PostgreSQL中文社区前主席、巨杉数据库产品及运营资深总监萧少聪,萧老师说了一句话“说实话都是Oracle惹的祸,要不是他做的那么牛逼,中国数据库有至于那么难吗。”确实,在某些应用场景或者说叫使用环境下,Oracle数据库是很难被替换的,结合一些以前一些文章(包括被转载的地方)的留言讨论和一些群聊内容。

1 数据量

先保个命,这里不是说分布式数据库不好,但确实最早分布式数据库的出现有一点原因是单机处理性能不够,需要更多的服务器来解决问题,其中很大一个原因就是数据量的增长。而现在在软硬件水平飞速发展的现在(尤其是IO能力),单机的处理能力有了非常显著的提升,现在的瓶颈反而来到了数据库单个实例的处理能力上了,当然Oracle也可以需要通过RAC来扩展多个实例来解决一些场景,但就目前的实践来看,使用Oracle RAC确实用不到分布式数据库那么庞大的服务器规模。
这里又到某些人的观念,一个关系型数据库就不该存放超过10TB的数据,这里拿我服务的运营商来举例,一个省的资源点大大小小加起来会达到几十亿的量级,其中本身描述数据非常复杂(说白了就是行数据量贼大的那种)的资源点也是过亿的,其中的关联关系和资源本身的其他属性,就会带来海量的数据(这里还没有包含所谓的时序数据),对这些数据的使用,其实偏向于OLTP,比如资源点的存活状态、性能状态、上下游关系、告警等等操作,这种杂乱无序的数据的操作,是Oracle(或者说是集中式数据库)擅长的,而单存从海量数据的处理效能和硬件资源利用率来看,目前Oracle还无出其右。
说起数据量,吐槽一下之前看到的留言评论,说数据库使用不占IO资源,其实说出这样观点的人无外乎就几种,没有接触过大规模的系统的、只接触过大系统的部分功能的或者纯纯圈外习惯质疑的…

2 架构

虽然现在我主要服务于运营商,算是传统企业,但是曾几何时也供职工互联网公司(再说了还有那么多互联网公司的大佬朋友可以探讨)。我发现一点,传统企业或者说是传统行业,IT架构往往十分简单,一个或多个中间件服务器加上一套数据库就能解决问题,这里也要说一下Oracle无论在功能还是性能上都能很好的支撑这种架构(PG用好了也可以哈)。
但是很多互联网架构,实现数据的高性能和及时性往往是通过一个比较庞大且复杂的数据中间层实现的,比如Kafka、Redis、ElasticSearch、ClickHouse等等组合出来的,也就是很多地方说的中台架构,这种架构(如果配合上云)的好处就是可以便捷支撑快速扩展的业务,快捷上线新功能,而最终数据库成为了最终记录和兜底的存在。
传统架构和互联网架构没有好坏之分,差的只是应用场景的不同而已,但是有一点,传统企业的IT架构往往只需要几台服务器,而变更为互联网架构(或称为数字化转型),往往就要几十上百台的服务器,同时技术栈的扩展,原来中间件+数据库的开发管理维护现在可能需要近10种技术栈的使用,以前一种数据库就能解决的问题,现在A库查完去B库,B库关联完去C库,最终结果还要去D库关联,不一定每一家传统企业都能接受或者承受这种变化。

3 应用改造

其实这又是一个历史遗留问题,大量存量且高负载的重要核心系统仍然运行在Oracle数据库上,举一些鲜红的例子,不能点名,某些金融行业客户(不是那种贼小的地方)对部分核心系统进行国产化改造,数据库也就1000W左右,但是应用改造破亿了(还超的有点多)。不要去听信那种不需要针对数据库进行应用改造的忽悠,不同数据库单就SQL方言问题都能搞死一大片,更别说不同架构的数据库使用方式是完全不一样的。即使是号称兼容性最好的国产数据库,也需要大量改写来解决很多性能问题(其实最终整体性能还是不达标)。

4 Exadata和融合数据库

还是说那些大量存量且高负载的重要核心系统仍然运行在Oracle数据库上,这类数据库还有一部分还运行在Oracle Exadata一体机上,一体机性能的强大,可以翻翻我以前的文章,一体机的性能会给很多业务研发带来一种幻觉,写个不怎么好的SQL也能跑出那么好的性能(我真牛?那是一体机真牛!放在普通自建环境该跑不出来还是跑不出来)。虽然也有人说国产一体机能不错(同样跑Oracle),但就一点不行,在Exadata上全库可以不建索引,而在国产一体机上都得整上(其实就算是国产化硬件迁移不换数据库,改造量就不少,更别说换数据库了)。
Oracle近几个版本都在推融合数据库,很早以前实现的GIS、Spatial,到后来的Inmemory和JSON数据类型,再到最近Oracle 23c融合了Kafka、JSON二元性、关系型图、全功能高速缓存等等功能,使得可以将传统复杂的数据架构合一到一套数据库,有些融合进来的功能还不用改使用习惯。这对于IT架构简单和团队小的地方,吸引力还是蛮大的。

总结

我认为,数据库的使用,是应用场景与数据库产品的匹配,数据库得适合应用场景,应用也得好好使用、遵循数据库产品的特性。
最后,我是没有自己的微信群,这里推广一下薛首席的微信群,里面数据库圈大佬众多,日常进行技术、非技术讨论,由于群人数已超过200,只能把首席微信二维码贴出来,想入速加:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HCIP-1

一、网络类型: 点到点 BMA:广播型多路访问 – 在一个MA网络中同时存在广播(洪泛)机制 NBMA:非广播型多路访问—在一个MA网络中,没有洪泛机制 MA:多路访问 在一个网段内,存在的节…

day-08 构造限制重复的字符串

思路 首先统计每个字符的个数&#xff0c;然后从后向前按照题意添加字符 解题方法 从后向前添加字符&#xff1a;1.当前字符个数<repeatLimit,直接添加 2.当前字符个数>repeatLimit,添加repeatLimit个&#xff0c;然后插入一个下一级字符 时间复杂度:O(n) 空间复杂度:…

java中多线程

文章目录 多线程进程和线程进程线程 继承Thread类方式实现多线程设置线程名字的两个方式获取正在运行的线程线程调度模型和线程优先级设置两种调度模型优先级设置 线程控制sleepjoin守护线程 线程生命周期 多线程 进程和线程 进程 进程&#xff1a;是正在运行的程序 是系统进…

【算法每日一练]-dfs (保姆级教程 篇9) #俄罗斯方块 #ABC Puzzle #lnc的工资

目录 今日知识点&#xff1a; 二维图形的状态压缩&#xff0c;存下所有的合法状态然后暴力遍历 dfs的优化剪枝 二项式定理 俄罗斯方块 ABC Puzzle lnc的工资 俄罗斯方块 322D 题意&#xff1a;在4*4方格中分别给出3个俄罗斯方块&#xff0c;问是否可以经过旋转&#xf…

TOP刊竟一个月有结果,连中两篇,感觉投了就要!简直性价比天花板!

CEJ 期刊评说 网 友 辣 评 评说1&#xff1a;审稿很快&#xff0c;编辑应该就给审稿人20天审稿&#xff0c;投过两次都特别快&#xff01; 评说2&#xff1a;确实是性价比天花板&#xff0c;文章连续被老牌的一、二、三区期刊拒&#xff0c;多亏了 CEJ把我捞了起来&#xf…

IPv6组播技术--MLDv2

MPLDv1工作机制 IPv6组播网络中RouterA和RouterB连接主机网段,在主机网段上有HostA、HostB、HostC三个接收者。假设HostA和HostB想要接收发往组播组G1的数据,HostC想要接收发往组播组G2的数据。 查询器选举机制 当一个网段内有多台IPv6组播路由器时,由于它们都可以接收到…

mysql进阶 - 存储过程

目录 1. 用途&#xff1a; 2. 相关语法 2.1 创建 2.1.1 语法 2.1.2 示例 2.2 查看存储过程 2.3 调用 2.4 修改存储过程 2.5 删除存储过程 1. 用途&#xff1a; 存储过程广泛存在于一些遗留系统&#xff0c;可以减少代码的编写。而近些年&#xff0c;存储过程很少再用…

论文阅读_训练大模型用于角色扮演

英文名称: Character-LLM: A Trainable Agent for Role-Playing 中文名称: 角色-LLM&#xff1a;训练Agent用于角色扮演 文章: [https://arxiv.org/abs/2310.10158](https://arxiv.org/abs/2310.10158) 作者: Yunfan Shao, Linyang Li, Junqi Dai, Xipeng Qiu 机构: 复旦大学…

制作 Kali 可启动 USB 驱动器

Kali USB驱动器&#xff0c;轻松安全&#xff0c;获取最新镜像&#xff0c;开始强大的安全测试&#xff01; Kali 可启动 USB 驱动器的优点&#xff1a; 不会更改主机系统的硬盘驱动器或已安装的操作系统&#xff0c;并且要返回正常操作&#xff0c;您只需删除“Kali Live”U…

31 树的存储结构二

DIsplay() 递归显示 :图示 求树的高度时&#xff0c;递归的技巧 在递归的过程中&#xff1a;ret单独和任意一个子树的子高度比较&#xff0c;如果ret<max&#xff0c;retmax ------------- 注意&#xff1a;组织链表和子链表的【元素类型】都是TLNode* 链表都要先通过TLNod…

HTB-SAU

信息收集 # cat port.nmap # Nmap 7.94 scan initiated Thu Jan 11 19:26:51 2024 as: nmap -sS --min-rate 10000 -p- -oN port.nmap 10.10.11.224 Nmap scan report for 10.10.11.224 (10.10.11.224) Host is up (0.28s latency). Not shown: 65531 closed tcp ports (r…

pymssql 报错误解决办法:20002, severity 9

错误 解决办法 python3.6&#xff0c;安装pymssql低版本&#xff08;pymssql-2.1.5-cp36-cp36m-win32.whl&#xff09;

Feature Fusion for Online Mutual KD

paper&#xff1a;Feature Fusion for Online Mutual Knowledge Distillation official implementation&#xff1a;https://github.com/Jangho-Kim/FFL-pytorch 本文的创新点 本文提出了一个名为特征融合学习&#xff08;Feature Fusion Learning, FFL&#xff09;的框架&…

流量预测中文文献阅读(郭郭专用)

目录 基于流量预测的超密集网络资源分配策略研究_2023_高雪亮_内蒙古大学&#xff08;1&#xff09;内容总结&#xff08;2&#xff09;流量预测部分1、数据集2、结果对其中的一个网格的CDR进行预测RMSE和R2近邻数据和周期数据对RMSE的影响 &#xff08;3&#xff09;基于流量预…

点餐新体验:老板自研扫码点餐小程序的成果

为了提高餐厅的效率和顾客的用餐体验&#xff0c;餐饮店老板们纷纷开始探索新的技术手段。其中&#xff0c;扫码点餐小程序就是一种非常受欢迎的解决方案。 扫码点餐小程序是一种基于微信小程序开发的餐饮点餐系统&#xff0c;它通过扫描桌码或菜品二维码&#xff0c;实现快速点…

ElasticSearch概述+SpringBoot 集成 ES

ES概述 开源的、高扩展的、分布式全文检索引擎【站内搜索】 解决问题 1.搜索词是一个整体时&#xff0c;不能拆分&#xff08;mysql整体连续&#xff09; 2.效率会低&#xff0c;不会用到索引&#xff08;mysql索引失效&#xff09; 解决方式 进行数据的存储&#xff08;只存储…

【面试宝典】图解ARP协议、TCP协议、UDP协议

一、ARP协议 二、TCP协议 三、UDP协议 四、TCP和UDP的区别

基于Springboot+uniapp的美容美发预约、会员管理、充值小程序(有文档、Java毕业设计)

大家好&#xff0c;我是DeBug&#xff0c;很高兴你能来阅读&#xff01;作为一名热爱编程的程序员&#xff0c;我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里&#xff0c;我将会结合实际项目经验&#xff0c;分享编程技巧、最佳实践以及解决问题的方法。无论你是…

【LabVIEW FPGA入门】LabVIEW FPGA 实现SPI通信协议

该实现由两个组件组成&#xff1a;在 LabVIEW FPGA 中实现的 SPI 协议以及用于从主机 PC 或实时控制器与 FPGA 进行通信的 LabVIEW 主机接口。该架构允许从单个主机程序控制多个 SPI 端口&#xff0c;同时仍然允许定制 FPGA VI 以进行其他数据采集和处理。该实现不使用任何DMA&…

[DL]深度学习_Feature Pyramid Network

FPN结构详解 目录 一、概念介绍 二、结构详解 1、对比试验 2、特征图融合 3、结构详解 4、不同尺度预测 5、Proposal映射到预测特征层 一、概念介绍 Feature Pyramid Network (FPN)是一种用于目标检测和语义分割的神经网络架构。它的目标是解决在处理不同尺度的图像时…