当前位置: 首页 > news >正文

Oracle最终会扼杀MySQL?(译)

原文网站:https://www.percona.com/blog/is-oracle-finally-killing-mysql/

作者:Peter Zaitsev

自从Oracle收购了MySQL后,很多人怀疑Oracle对开源MySQL的善意,这篇percona的文章深入分析了Oracle已经和将要对MySQL采取的措施,并预测了MySQL的未来。

在 15 年前,Oracle 收购了 Sun,并因此获得了 MySQL 的所有权。这导致了互联网上的很多关于 Oracle 会如何对待 MySQL 的讨论。有人认为 Oracle 会完全扼杀 MySQL,以减少对专有的 Oracle 的竞争;还有人认为 Oracle 会将 MySQL 作为开源项目扼杀,以便使收费的MySQL企业版(MySQL Enterprise)成为唯一的选择。这些谣言对于 MariaDB 和 PostgreSQL等竞争对手来说是一件好事,因此它们被广泛传播。

但实际上,Oracle最终成为MySQL的好管家。MySQL团队大部分时间都是独立工作,MySQL的老人Tomas Ulin基本上发号施令。MySQL变得更加稳定和安全,许多技术债务得到了修复,并添加了许多现代开发人员想要的功能,例如 JSON 支持和对高级 SQL 标准功能的支持。

虽然有MySQL的企业版,但它确实只专注于企业需要,而开发人员很少关心的功能,例如:可插拔身份验证、审计、防火墙等。虽然还有一个专有的GUI、监控和备份工具(例如MySQL Enterprise Monitor),但也有很多开源和专有的竞争对手,所以MySQL的企业版并没有造成很大的垄断。

在这段时间里,我经常发现自己在为Oracle辩护,许多人认为他们对MySQL很糟糕,原因很简单:因为他们就是Oracle。

我认为在这段时间里,Oracle一直在使用这个众所周知的开源成功公式:“转换永远不应该影响用户采用。”

然而,近年来,随着“MySQL Heatwave”(Oracle的MySQL云数据库)的推出,情况发生了变化。Heatwave 包含许多 MySQL Community 或 MySQL Enterprise 中没有的功能,例如加速分析查询和 Machine Learning等功能。

当涉及到“分析查询”时,这尤其成问题,因为MySQL没有并行查询的能力。在拥有数百个内核的 CPU 进入市场后,这些多内核并没有明显提高MySQL的速度。这个限制不仅表现在分析应用的查询,也适用于简单的“group by”查询。说明:MySQL 8 确实对 DDL 有一些并行化支持,但对查询没有。

这是不是为了让人们转而拥抱MySQL Heatwave?或者,干脆迁移到 PostgreSQL 或 Clickhouse?

矢量搜索是开源MySQL缺乏的另一个领域。目前其他所有主要的开源数据库都增加了对矢量搜索功能的支持,并且MariaDB正在研究它,而在MySQL生态系统中它只能在云版本MySQL Heatwave上使用。

然后也许是最奇怪的选择:只有MySQL Enterprise支持Javascript,开源MySQL的社区版上并不支持这个业界最流行的语言!我认为 MySQL 应该尽一切努力赢得 Javascript 开发人员的心,他们中的许多人已经更喜欢更简单的数据库,比如 MongoDB。

根据我的看法,所有这些特性都违背了前面提到的黄金法则,因为它们显然会降低用户对MySQL的采用率。无论从特定功能的角度来看,还是从担心这种看似政策变化对MySQL未来的影响的角度来看,这些特性都会对用户造成负面影响。

如果这还不够,MySQL似乎在性能工程部门遭受了多年的忽视,与MySQL 5.6相比,MySQL 8.0的性能显著降低(参见:结果出乎意料!MySQL和MariaDB谁快?MySQL 8.0比MySQL 5.6快吗?。您可以声称功能的增加带来性能的降低是正常现象,但MariaDB能够显著减少性能下降,PostgreSQL甚至在添加新功能的同时提高了性能。
在这里插入图片描述
我不了解 Oracle 管理团队内部的决策理由,我不能说这是无知还是恶意,但在过去几年中,这样的产品决策肯定不利于 MySQL 的被用户采用,因为 PostgreSQL 已经大步赢得了人心,并且根据 DB-Engines 的说法,已经显着缩小了与 MySQL 的被用户采用的差距。 并且已经是StackOverflow 开发者调查中最受欢迎的开源关系数据库。
无论如何,除非 Oracle 将注意力转向现代开发人员对关系数据库的需求,否则Oracle将扼杀MySQL,如果不是通过行动,那么就是通过不作为。

关于号主,姚远:

  • Oracle ACE(Oracle和MySQL数据库方向)
  • 华为云最有价值专家
  • 《MySQL 8.0运维与优化》的作者
  • 拥有 Oracle 10g、12c和19c OCM等数十项数据库认证
  • 曾任IBM公司数据库部门经理
  • 20+年DBA经验,服务2万+客户
  • 精通C和Java,发明两项计算机专利

相关文章:

  • 最新下载:CorelDraw 2023【软件附加安装教程】
  • Ecovadis审核的内容
  • CG-85C 振弦式土压力计厂家 结构物内部土压力变化量如何测量?
  • 高考志愿填报秘籍:个人篇
  • getDay 与 getUTCDay 本质区别
  • 基于 Delphi 的前后端分离:之三,使用 HTMX
  • H323 截包分析辅流问题
  • 力扣42 接雨水
  • mysql社区版有可以双机吗
  • 大城市与小城市的一些感受
  • C++中的适配器模式
  • 欢乐打地鼠小游戏html源码
  • 面试题:callable与runable的区别?
  • python中字典的创建
  • Spring AI 第二讲 之 Chat Model API 第九节 watsonx.ai Chat
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • 10个最佳ES6特性 ES7与ES8的特性
  • Angularjs之国际化
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Redux系列x:源码分析
  • TCP拥塞控制
  • uni-app项目数字滚动
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 警报:线上事故之CountDownLatch的威力
  • 如何利用MongoDB打造TOP榜小程序
  • 想写好前端,先练好内功
  • 找一份好的前端工作,起点很重要
  • ​数据结构之初始二叉树(3)
  • ​香农与信息论三大定律
  • # C++之functional库用法整理
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #pragma 指令
  • (2024最新)CentOS 7上在线安装MySQL 5.7|喂饭级教程
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (Python) SOAP Web Service (HTTP POST)
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (每日一问)操作系统:常见的 Linux 指令详解
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .mp4格式的视频为何不能通过video标签在chrome浏览器中播放?
  • .mysql secret在哪_MySQL如何使用索引
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .NET Core中Emit的使用
  • .Net Core中Quartz的使用方法
  • .NET Framework .NET Core与 .NET 的区别
  • .net MVC中使用angularJs刷新页面数据列表
  • .NET Project Open Day(2011.11.13)
  • .NET Remoting学习笔记(三)信道
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道