数据库管理-第九十七期 以一当十的数据库路线(20230810)

第九十七期 以一当十的数据库路线(20230810)

距离上一期已经过去了整整9天了,相较于前几个月的“生产队的驴”,确实慢了很多,归根结底有几点:一是19c OCM的相关内容暂时告一段落,少了一半内容;另一方面,准备完成了19c OCM的模拟环境,也开始了2天一轮的疯狂练习;当然还有就是大运会保障,我本身工作上也没啥事,素材偏少。
另一件事情,昨晚开源中国了组织了一个线上直播《MySQL 和 PostgreSQL,谁是世界第一?》,很多人都在说,素材来了,但是说真的,我真不想写,文无第一武无第二,选择适合自身应用场景、需求的数据库才是最重要的。
作为一个全职的Oracle DBA和兼职的其他数据库DBA,我还是认为Oracle才是世界第一(其实Excel才是,手动滑稽)。

1 多对单

这里不是指的数据库功能的多寡(如果比功能数量的话,PG能拉出一整页),具体咋解释看下图吧:
在这里插入图片描述
其实国产很多数据库,特别是分布式数据库走的路线和AWS是一样的,通过不同组件来实现如HTAP等功能,其实也就是把TP和AP分到不同的数据库组件去执行,也达到了不错的效果。以TiDB为例,就是通过存储引擎 TiKV 、列存储引擎 TiFlash 两款存储引擎实现了HTAP功能。
而Oracle走的却是另一条路,与PG通过插件来实现功能扩展的方式不同,Oracle使用一套统一架构,实现了多种数据库类型、多种数据负载、多种开发场景的支持,同时实现了CPU、内存、IO全方面隔离的多租户架构。这样的好处是显而易见的,维护量是显著减少的,不用去管理那么多组件也不用考虑组件之间的协调与同步;同时很多新功能的视线是无需对原有代码进行变更的;由于统一架构也能实现软硬件资源更加高效的利用,减少不必要的资源损耗。当然问题也是显而易见的,当新功能需要添加的时候,为了性能、稳定性和安全性的考量,同时维持高效的软硬件利用率,数据库本身可能需要从最底层代码进行变更甚至是重写,这往往需要很长时间,比如大版本升级才能实现,也增加了数据库出现bug的几率(这里可以参考19c初始几个版本显现出来的问题)。
两种方式孰优孰劣?我个人是站Oracle的,当然这也源自于Oracle在数据库行业超过40年的技术积累以及至今让人无法望其项背的研发投入,让Oracle有足够的资本选择一条更难但是更优的道路;国内的PolarDB、MatrixDB也走的类似的道路,目标是用户使用简单的统一架构降低使用成本。而使用多组件或者插件的方式,如前面提到的AWS以及PostgreSQL、TiDB、OceanBase等,确实也带来了数据库架构的灵活性,数据库功能扩展的便捷性,但是回到本源,多一个东西多一分损耗,多与优的平衡是需要好好掌控的。

2 能力密度

能力密度这个词,我第一次是在一场Oracle关于Exadata研讨会上听到的:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这里节选了部分PPT内容,Exadata的性能,没用过的人可能不知道,我以我自己经历来说一下,以Exadata X9M-2 1/4替换4节点4U(单台40C512GB)服务器X86架构RAC集群为例:
原来X86架构服务器每台机器是配置了两张双口16Gbps的HBA卡,后面分别挂了EMC VMax和EMC Unity两套存储用以IO分流;两张双口万兆网卡,生产网络做了交叉bond mode1,集群私网做了双路双活;每台机器4颗E7-4820 v3的CPU。
即时是这样,3个用于生产的主机CPU占用率常年超过66%,经常性突破80%;私有网络10GE经常跑满,扩到20GE后也会偶尔跑满(知道为啥用双路双活的模式了吧);集群和IO等待常年较多。迁移前,数据库常态运行的活动会话数约为150左右。
迁移到Exadata过后(直接上截图):
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看图说话,相同负载下,不对,现在无论负载还是数据量是远高于迁移之前,Exadata带来的性能提升还是非常可观的。关于具体PDB的性能提升可以参看数据库管理-第四十二期 复盘一下(20221104)中的第四节“喜闻乐见”。
由此可以看出,Exadata确实可以用很小的空间(往往是一个机柜外加用于外部访问的交换机),利用“相对垃圾”的硬件,用极大的性能密度来解决需要很多服务器和配套其他硬件解决的问题。除了带来能耗、维保、空间层面的优势,维护层面的简化也有巨大的优势。
关于Exadata如此强大的根源,其实并不是GI+DB构建的RAC集群(当然数据库本身强也是个基础),更主要源自于Exadata Storage Software带来的诸如smart scan offload(详见数据库管理-第六十一期 Exadata是否需要索引(20230314))、分布式存储、智能存储索引等特性,充分利用NVMe SSD、RoCE/RDMA、PMEM/XRMEM等硬件优势,结合Oracle对自身数据库在数据存储层面的了解,软硬结合,极大扩展了存储提供的IO能力。这个是我们国产数据库和国产数据库一体机需要着重学习的,而不是单纯去堆硬件。

3 卷带来了什么

其实我之前在公众号写了一篇文章我们究竟在卷什么。还是以我这环境为了,好不容易通过Oracle Exadata和DBaas缩减的服务器用量,减少的维护压力,提升的数据库性能和稳定性。在国产化(或者开源替换)浪潮下,我们需要比以前还多的服务器、更多的数据库运维人员、更多的数据库类型来解决数据库层面的问题,不仅付出更多的硬件采购维保费用、电费、场地费、人工费,同时license费用也会增加很多。

总结

昨晚MySQL和PostgreSQL在争第一,直播评论里很多人就说:“Oracle会怎么看”,“Oracle是第一”,“Oracle是这个星球最好的数据库”。诚然,Oracle确实很强。但是要我说,Excel才是最强的:全功能的,图形化,跨平台,HTAP,BI集成,有云原生,自带GUI的Scripts,在Excel上可以创建Button和Event出发事件,也是个内存数据库;EXCEL满足90%企业的数字化需求。
这一期,我也不晓得晓得还是不晓得写了些啥。
最后,感谢薛首席提供的文章标题。

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

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

相关文章

MySQL 查询语句大全

目录 基础查询 直接查询 AS起别名 去重(复)查询 条件查询 算术运算符查询 逻辑运算符查询 正则表达式查询⭐ 模糊查询 范围查询 是否非空判断查询 排序查询 限制查询(分页查询) 随机查询 分组查询 HAVING 高级查询…

【UE4 RTS】06-Camera Edge Scroll

前言 本篇实现的效果是当玩家将鼠标移至屏幕边缘时,视野会相应的上下左右移动 效果 步骤 1. 打开玩家控制器“RTS_PlayerController_BP”,在类默认值中设置如下选项 新建一个宏,命名为“EdgeSroll”, 添加两个输入和三个输出&a…

多进程利用TCP进行信息群发功能

/服务器的代码 #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> #include <unistd.h> #include <string.h> #include <stdio.h> #include <stdlib.h> #define SEVER_IP &quo…

Linux 命令大全(下)

Linux 命令大全&#xff08;上&#xff09; 本文目录 6. 网络通讯 常用命令6.1 ssh 命令 – 安全的远程连接服务器6.1.1 含义6.1.2 语法格式6.1.3 常用参数6.1.4 参考示例 6.2 netstat 命令 – 显示网络状态6.2.1 含义6.2.2 语法格式6.2.3 常用参数6.2.4 参考示例 6.3 dhclient…

Windows10+OpenCL环境配置

一.查看自己电脑的显卡配置支不支持OpenCL 方法1&#xff1a;我的电脑用的是intel的显卡&#xff0c;具体查看方式&#xff1a;桌面右键 → 英特尔显卡设置 → 选项与支持打开英特尔 显卡控制中心。如果找不到&#xff0c;尝试方法2 方法 2&#xff1a;Windows 开始菜单 在 Wi…

【第一阶段】kotlin的when表达式

1.Java 的if /when是语句 kotlin的if/when是表达式&#xff0c;表达式是有返回值的 java中void是个关键字&#xff0c;Unit在kotlin中是个类 2.当使用when语句的时候必须有一个不满足的值即else: fun main() {var week:Int5val info when(week){1->"今天是星期一"…

15.2 【Linux】仅执行一次的工作调度

15.2.1 atd 的启动与 at 运行的方式 要使用单一工作调度时&#xff0c;我们的 Linux 系统上面必须要有负责这个调度的服务&#xff0c;那就是 atd 。 不过并非所有的 Linux distributions 都默认会把他打开的&#xff0c;所以&#xff0c;某些时刻我们必须要手动将他启用才行。…

百度、NVIDIA、Intel……各大厂商集结,共话文心与飞桨共享生态下的大模型训推部署创新实践计划...

由深度学习技术及应用国家工程研究中心主办、百度飞桨和文心大模型承办的WAVE SUMMIT 2023峰会重磅来袭&#xff01;本届峰会聚焦AI技术、产业生态、未来趋势等主要方向&#xff0c;产、学、研、用各界大咖将围绕深度学习及大模型技术的发展与未来&#xff0c;带来行业前瞻洞察…

Nacos服务治理—负载均衡

引入负载均衡 在消费方引入负载均衡机制&#xff0c;同时简化获取服务提供者信息的流程 Spring Cloud引入组件LoadBalance实现负载均衡 添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web<…

Vue 实现重定向、404和路由钩子(六)

一、重定向 1.1 修改 Main.vue <template><div><el-container><el-aside width"200px"><el-menu :default-openeds"[1]"><el-submenu index"1"><template slot"title"><i class"…

unity vscode 代码关联 跳转 BUG

一早打开电脑发现代码关联失效了&#xff0c;目测可能跟昨天一些插件更新有关 结论 就这货&#xff0c;开了就没法提示代码关联&#xff0c;估计预览版全是BUG。 另一个坑 同期有个unity插件也是预览版&#xff0c;“非常好使”&#xff0c;当场去世。评论点开有好几个人说用…

python的gui界面程序爬虫,python的gui界面怎么打开

大家好&#xff0c;小编来为大家解答以下问题&#xff0c;python的gui界面怎么打开&#xff0c;python的gui界面程序爬虫&#xff0c;今天让我们一起来看看吧&#xff01; Python支持多种图形界面的第三方库&#xff0c;包括&#xff1a; wxWidgets Qt GTK Tkinter&#xf…

[保研/考研机试] KY187 二进制数 北京邮电大学复试上机题 C++实现

描述 大家都知道&#xff0c;数据在计算机里中存储是以二进制的形式存储的。 有一天&#xff0c;小明学了C语言之后&#xff0c;他想知道一个类型为unsigned int 类型的数字&#xff0c;存储在计算机中的二进制串是什么样子的。 你能帮帮小明吗&#xff1f;并且&#xff0c;小…

我的第一个创作纪念日

机缘 时间总是匆匆流逝&#xff0c;转眼间&#xff0c;我已经在前端领域迈入了第一个创作纪念日。回首往事&#xff0c;每一个创作的瞬间都如同一幅幅精彩的画面&#xff0c;在我心中留下深刻的印记。 日常 五年前&#xff0c;我踏入了前端职业的大门&#xff0c;初涉这片陌…

IP路由基础+OSPF 基础

IP路由 RIB与FIB RIB&#xff1a;Routing Information Base&#xff0c;路由信息库 &#xff0c;路由器的控制平面 FIB&#xff1a;Forwarding Information Base&#xff0c;转发信息库&#xff0c;路由器的数据平面 路由信息库主要是记录直连路由以及协议宣告的路由信息&am…

vue : 无法加载文件 C:\Users\…\npm\vue.ps1,因为在此系统上禁止运行脚本。

在 PowerShell 中创建 vue 项目时&#xff0c;出现了以下错误导致创建失败&#xff1a;vue : 无法加载文件 C:\Users\…\npm\vue.ps1&#xff0c;因为在此系统上禁止运行脚本。 报错原因 用户权限不足导致无法加载文件&#xff0c;以管理员身份运行终端或者 PowerShell 也可…

【架构设计】如何设计一个高性能短链系统

一、前言 所谓系统设计&#xff0c;就是给一个场景&#xff0c;让你给出对应的架构设计&#xff0c;需要考虑哪些问题&#xff0c;采用什么方案解决。很多面试官喜欢出这么一道题来考验你的知识广度和逻辑思考能力。 虽然各个系统千差万别&#xff0c;但是设计思想基本一致&a…

Python-OpenCV中的图像处理-图像金字塔

Python-OpenCV中的图像处理-图像金字塔 图像金字塔高斯金字塔拉普拉斯金字塔 金字塔图像融合 图像金字塔 同一图像的不同分辨率的子图集合&#xff0c;如果把最大的图像放在底部&#xff0c;最小的放在顶部&#xff0c;看起来像一座金字塔&#xff0c;故而得名图像金字塔。cv2…

剑指 Offer 30. 包含min函数的栈

题目描述 定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中&#xff0c;调用 min、push 及 pop 的时间复杂度都是 O(1)。 示例 思路 新开一个辅助栈记录不严格递增序列&#xff0c;栈顶元素始终为栈内的最小值&#xff0c;注意多个…

flask使用cookie (设置cookie与查看cookie内容)

1.flask包cookie的使用 设置cookie app.route(/set_cookie) def set_cookie():resp make_response(Setting cookie)resp.set_cookie(username, John)return resp查看cookie: app.route(/get_cookie) def get_cookie():username request.cookies.get(username)return Welco…