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

news/2025/1/19 22:45:31/

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

在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/news/1564516.html

相关文章

STM32 FreeRTOS 信号量

信号量的简介 reeRTOS中的信号量是一种用于任务间同步和资源管理的机制。信号量可以是二进制的(只能取0或1)也可以是计数型的(可以是任意正整数)。信号量的基本操作包括“获取”和“释放”。 比如动车上的卫生间,一个…

PyTorch深度学习实践【刘二大人】之卷积神经网络

视频地址10.卷积神经网络(基础篇)_哔哩哔哩_bilibili 网络中全部用的线形层串行连接起来,我们叫做全连接网络。输入与输出任意两节点间都有权重,这样的线形层叫做全连接层 卷积神经网络的基本特征,先特征提取再进行分…

【Redis】RedisTemplate数据的常用API

1. String 类型操作 set(K key, V value): 设置指定 key 的值。set(K key, V value, long timeout, TimeUnit unit): 设置指定 key 的值,并指定过期时间。get(K key): 获取指定 key 的值。getAndSet(K key, V value):…

分布式项目新选择:Dubbo搭建方案

在当今的数字化时代,构建高性能、可扩展的分布式系统已成为众多企业应对业务增长和技术挑战的关键。Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java RPC框架,为Java开发者提供了一套完善的分布式服务治理方案。本文将详细介绍如何使用Dub…

K8S中Pod控制器之Deployment(Deploy)控制器

Deployment(Deploy)控制器 从Kubernetes 1.2版本开始,引入了Deployment控制器,它提供了一种更高级别的抽象来管理应用的生命周期,包括应用的声明式更新、回滚、暂停和恢复等。Deployment的设计目标是简化应用的部署和扩展,同时提供…

JS宏进阶: 工厂函数与构造函数

一、构造函数 在JavaScript中,构造函数是一种用于创建和初始化对象的特殊函数。构造函数的名字通常以大写字母开头,以区分于普通函数。通过new关键字调用构造函数,可以创建一个新的实例对象,并自动执行构造函数内部的代码来初始化…

【硬件介绍】Type-C接口详解

一、Type-C接口概述 Type-C接口特点:以其独特的扁头设计和无需区分正反两面的便捷性而广受欢迎。这种设计大大提高了用户的使用体验,避免了传统USB接口需要多次尝试才能正确插入的问题。Type-C接口内部结构:内部上下两排引脚的设计虽然可能不…

深入理解 SQL 中的 DATEDIFF 函数

深入理解 SQL 中的 DATEDIFF 函数 DATEDIFF 函数在 SQL 中是一个用于计算两个日期之间差值的重要工具。不同数据库实现了不同版本的 DATEDIFF,它们在功能和语法上有所不同。本文将详细解析 DATEDIFF 的用法、数据库间差异、复杂场景中的应用,以及替代方…