替换数据库不是谁好就用谁

embedded/2025/1/18 16:22:50/

哪个数据库优秀不一定都能达成一致的意见

在1.4日的PG上海生态大会上,我发言大致是:每个人都有自己主观意愿。比如MySQL和PG的争论,无论线上还是线下都是难解难分。主观意愿定了,很难改变。即使心里认,但是嘴上也不说。

但是如果说到Oracle几乎所有人,都认为从技术、架构、理念和产品等综合来说是当之无愧的第一。而这也是几乎,不能说100%。只是没有其他数据库那么分裂。

拿一个好的能替换一个稍微差一点的数据库吗?

大家都知道去IOE,阿里系用MySQL替代了Oracle。这期间技术团队做了多少工作很多人是不知道的。那么问题来了,如果一个企业用的是MySQL,那么用Oracle去替换MySQL可以吗?是不是反过来就没有那么多工作?

我只能说工作量也不少。

首先:两个数据库语法上有差异,所以要大量改SQL。
其次:可能一个系统用了大量的MySQL是微服务或者分库分表再或者试其他的。那么现在用一个来替换,那么应用程序也要大量的改造去掉这些调用关系。最终系统架构是简化了,但是工作量也不小。最后会发现用不了这么多人和这么多机器也行。

当然还有其他的。不过不管怎么说都能知道要改程序。所以决策者一般来说不会去改。

这里不要说兼容性做到了100%,应用程序一行不改。我不信!(在同样的硬件环境下保持和原来一样的效率,能不能白纸黑字写下来?)如果说要堆原来10倍的机器才能达到一样,那么这种我是相信的。

这种当然也体现在信创上。原本系统用的好好的,现在要替换。别说替换的不如我现在用的,因为这个存在争议。即使新的比现在好没有争议的,那也受不了。

所以很多时候(我说是很多时候,不是说所有时候)并不会因为一个数据库优于另外一个数据库,就去换。即使现在用的不合适,不到万不得已也不太会去换。这和开发语言一样。不会因为今天新出了一个,就马上用这个新的当红语言把之前的全部重写一遍。

如果在10年前还有这种可能性的话,那么在今天这个经济形势(大家心知肚明,不太相信报道中的稳中向好)的情况下,几乎不可能了。

有哪些可以去替换的

1.因为数据库选型错误原有系统实在是维护不下去了,正好也有钱重做一遍。(实在不行和有钱,二者缺一不可)
2.有自主可控邀请,正好也有钱重做一遍。(有信创要求和有钱,二者缺一不可)
3.一个全新的系统,正好也有钱招人新开发一套系统。(有新系统机会和有钱,二者缺一不可)
4.需要统一技术栈,正好有钱可以做替换重构。(有统一诉求和有钱,二者缺一不可)
5.确实觉得新的数据库好,有未来。正好有钱可以慢慢的将系统迁移到新的数据库上。(新数据库有前景和有钱,二者缺一不可)
未完待补充。。。。

看上去共有的一个特点是有钱。没钱的就算了。为什么这么说呢?没钱谁干活,总不能都是为爱发电吧。再有觉悟也不能说不要钱干个几年是吧。

对每一种数据库的坚持都值得尊敬

比如对Oracle DB2 SQLSERVER这种数据库喜爱的用户来说,这些数据库带来了价值也带来了情怀。
对这些数据库坚持的DBA来说,这些数据库给DBA带来了成就,也带来了收入。

对开源数据库MySQL PostgreSQL这些数据库喜爱的用户来说,这些数据库降低了一些数据库的成本,当然也增加了一些设备和人的成本(只是企业没意识到)。不过也存在这,企业就是不给人钱,没有意识到人这些人需要很多的钱。本质上还是对人和知识的不够尊重。
对这些数据库坚持的DBA来说,这些数据库给DBA带来了成就,也带来了收入。

对国产数据库喜爱的用户来说,国产数据库带来了政策上的价值。
对于这些数据库坚持的DBA来说,这些数据库给DBA带来了成就,也带来了情怀。这里似乎没提钱,钱也是有的但是不多。毕竟我们市场就这么小,现在已知盈利的就3家吧,其他还在亏损或者说在国内是亏损的。

数据库数据库好坏无关

在分布式中OB和TiDB我觉得是做的比较好的。如果说某个用户需要分布式,但是用了这两个以外的,我觉得不一定是比他们两个有多好。而是关系确实比他们两个好。

这两个都是LSM-tree的数据结构,所有LSM-Tree的优点他们都有,缺点也都多少会带一点。就像原子弹是核裂变一样,两个国家都做原子弹的话,做出来的效果都差不多。氢弹是核聚变,那么两个国家都做氢弹的话,做出来的效果都差不多。

我说这些是当下你看看纷纷扰扰的替换中,未必用的就是最合适的,最合适的未必用的上。很可能就是不适合或者自己不喜欢的,但是也只能硬着头皮用。


http://www.ppmy.cn/embedded/154986.html

相关文章

msxml安装失败怎么办,如何解决

当MSXML安装失败时,可以尝试以下几种方法来解决这个问题: 一、检查并修复系统文件 系统文件的损坏可能会阻止MSXML的安装。此时,可以使用系统文件检查器(SFC)来扫描并修复可能损坏的系统文件。具体步骤如下&#xff1…

C++ 鼠标轨迹算法 - 防止游戏检测

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序,它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言,原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势: 模拟…

环境变量设置之后,pycharm 中程序获取不生效?

在 Linux 系统中,/etc/profile 是一个全局配置文件,主要用于定义所有用户的环境变量。当我们修改了 /etc/profile 文件后,如何让这些变量快速生效,而不需要重启系统呢?本文将为你详细讲解。 问题背景 当环境变量设置在…

2025-1-15-十大经典排序算法 C++与python

文章目录 十大经典排序算法比较排序1. 冒泡排序2. 选择排序3. 插入排序4. 希尔排序5. 归并排序6. 快速排序7. 堆排序 非比较排序8. 计数排序9. 桶排序10. 基数排序 十大经典排序算法 十大经典排序算法可以分为比较排序和非比较排序: 前者包括冒泡排序、选择排序、插入排序、希…

OpenAI第一个真正意义上的AI Agent:ChatGPT Tasks,使用指南1.0

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

【Python】函数 超全总结及练习案例

文章目录 定义参数位置参数关键字参数缺省参数不定长参数函数作为参数传递 返回值return返回值None返回值 嵌套使用作用域局部变量全局变量global关键字 函数综合案例:黑马ATM 定义 函数:是组织好的,可重复使用的,用来实现特定功…

Spring Boot 中logback无法对warn警告日志发送邮件

因为logback中的SMTPAppender所使用的eventEvaluator默认是OnErrorEvaluator,只会针对error级别的日志发送邮件。如下是SMTPAppender的start()方法的逻辑: public void start() {if (eventEvaluator null) {OnErrorEvaluator onError new OnErrorEval…

Android CustomTextField

在 Compose 中开发用户界面时,需要处理输入框和键盘的交互,例如在键盘弹出时调整布局位置,避免遮挡重要内容。本篇博客将通过一个完整的示例展示如何实现这一功能。 功能概述 本例实现了一个简单的输入框。当输入框获得焦点或输入文字时&…