当前位置: 首页 > 编程日记 > 正文

Oracle 工程师离职并回踩:MySQL 糟糕透顶,强烈推荐 PostgreSQL

51afcb443cd511d03e5192f1917a5ceb.gif

整理 | 祝涛       

出品 | CSDN(ID:CSDNnews)

如果你即将离职,你会做什么?抨击自己付出了五年心血的技术——这是Oracle公司前首席软件工程师、MySQL优化器团队成员Steinar Gunderson的选择。

这位工程师现已在Chrome团队任职,他在一篇文章中表示,他离任的原因很复杂,但他特别指出:“MySQL是一个糟糕透顶的数据库,你应该考虑用Postgres作为代替。”

9a00514661856d8459874b3184351634.png

63fa242f33ddf3b5ae3687a0fb2b0f68.png

MySQL已经“江郎才尽”

“来到MySQL团队就像踏入了一个平行宇宙,那里有很多人真的相信MySQL是一个最先进的产品。”尽管如此,目前来看仍然有“大量的改进空间”,“管理层强烈支持大规模的重构”。

虽然他对自己在MySQL上的工作感到自豪,MySQL 8.0也无疑是一个比5.7版本 “更好的产品”,但Gunderson表示:“你能做的也只有这么多。我和团队其他人所做的改变使得MySQL优化器朝着21世纪初期设计的方向发展,并进行了一些不错的调整,但这也是它的终点了。”Gunderson表示,无论公司内部如何吹嘘,他都无法相信MySQL会变成一个有竞争力的产品。

不过,不得不说Oracle确实在MySQL上花了很多心思。例如,去年12月,它升级了Oracle云中的在线分析处理能力。内存分析引擎旨在提高开源数据库的性能,由负责Oracle同名数据库的同一团队开发。

f5be9b5d5b1dd0b515fba5f53fbd847a.png

MariaDB不会比MySQL更好

MySQL原本是一个开放源码的关系数据库管理系统,第一个版本可以追溯到1995年。原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。

3fbe547f85f14266713b399de77f35a4.png

但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且Oracle公司不再支持另一个自由软件项目OpenSolaris的发展,因此导致自由软件社群们对于Oracle是否还会持续支持MySQL社群版(MySQL之中唯一的免费版本)有所隐忧,MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。而原先一些使用MySQL的开源软件逐渐转向MariaDB或其它的数据库。

但Gunderson对此也是嗤之以鼻,他表示:“不要相信MariaDB会比MySQL更好。”

9ca45a7626805bbc112b216c17e63019.png

没有理由不选择PostgreSQL

Gunderson没有详细解释为什么PostgreSQL比MySQL好得多,但他也并不是唯一一个提出这个观点的人。

SIB Visions的首席执行官Roland Hörmann上周在Postgres Build 2021上发表了演讲,他也特别提到了从Oracle的专有数据库转移到PostgreSQL的问题。

Hörmann表示:“如果客户询问应该选择哪个数据库,我总是回答PostgreSQL。没有理由不选择PostgreSQL:它是开源的,而且会变得更好。”

“如果你要建立一个数据库,你只需配置一次PostgreSQL的conf文件,然后它就能一直运行下去。你几乎不需要做任何事情,当然,你也需要设置备份等等,但你不必再花那么多时间了。”

你会弃用MySQL而选择PostgreSQL吗?

参考链接:

https://www.theregister.com/2021/12/06/mysql_a_pretty_poor_database/

https://blog.sesse.net/blog/tech/2021-12-05-16-41_leaving_mysql.html

https://zh.wikipedia.org/wiki/MySQL

ab3c4b3ac8546dbfd4c44eebeb90807b.gif

32efc35cf00d4edc7b339ac28e1942c1.png

资讯

程序员敲诈老板,或面临37年监禁

资讯

Meta新语音模型可支持128种语言交流

资讯

全球首个活体机器人,能生娃

资讯

机器人Ameca苏醒瞬间逼真到令人…

d19a5bfe659feb3980c4cc863b17f150.png

分享

71e269c75ec593f9e7f37c7c8cc202ff.png

点收藏

ad019541899bf7ffe1a8485e910c9d40.png

点点赞

7e6d2dfe797a55642e3a75a88a6aec8d.png

点在看

相关文章:

ORA-01109:数据库未打开(解决)

SQL> startup mountORA-01081: 无法启动已在运行的 ORACLE - 请首先关闭它SQL> shutdown immediateORA-01109: 数据库未打开 已经卸载数据库。ORACLE 例程已经关闭。SQL> startup mountORACLE 例程已经启动。 Total System Global Area 612368384 bytesFixed Size 125…

[洛谷P1317]低洼地

题目大意:一组数,分别表示地平线的高度变化。高度值为整数,相邻高度用直线连接。找出并统计有多少个可能积水的低洼地?(首尾都为0) 题解:求出其中都多少个不严格下降子段和不严格上升子段所夹的…

Linux环境编程--多线程

本文作者: 姚继锋 (2001-08-11 09:05:00) 时隔多年 原文地址已经无从查。。。 居然是2001年就写了 今天看来对初学者还是很有参考意义 所以特转给大家 本人在原文基础上适当修改 1 引言 线程(thread)技术早在60年代就被提出,但真正应…

Python 到底该怎么学才好?你关心的答案来了

相对于Android、IOS等技术,Python有着更为广阔的应用领域,例如前后端、AI、数据分析、爬虫、自动化、游戏开发等几乎所有领域都有它的应用。但也正因为如此,很多新人在学完Python基础后,根本不知道该选择什么方向深造,…

9513 防空洞

时间限制:1000MS 内存限制:65535K提交次数:104 通过次数:24 题型: 编程题 语言: G;GCC Description 有一天,dragon123偷偷地拿锄头在学校里挖开了一个尘封已久的防空洞。他在这个防空洞里面找到许多贵重的东西:一些石头和一些液体。dragon123知道&…

学习Mybatis与mysql数据库的示例笔记

目录结构&#xff1a; pom.xml文件 1 <?xml version"1.0" encoding"UTF-8"?>2 <project xmlns"http://maven.apache.org/POM/4.0.0"3 xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"4 xsi:schem…

Linux环境编程--进程通信

实验内容 编写程序实现进程的管道通信。用系统调用pipe( )建立一管道&#xff0c;二个子进程P1和P2分别向管道各写一句话&#xff1a;Child 1 is sending a message!Child 2 is sending a message! 父进程从管道中读出二个来自子进程的信息并显示&#xff08;要求先接收P1&…

你的编程能力从什么时候开始突飞猛进的?

如果提到程序员&#xff0c;很多人的印象是&#xff1a;呆板、木讷、不懂浪漫。如果提到代码&#xff0c;很多人的印象是&#xff1a;枯燥、繁琐、很难理解。但其实程序员的浪漫是普通人想象不到的&#xff0c;有一个网友为了追女生&#xff0c;以自己和女生为主角写了一个战棋…

超级 App 手机百度云端架构设计与个性化推荐

2015 年 6 月 28 日下午&#xff0c;百度与 InfoQ 携手举办了手机百度“云和端技术实践”沙龙活动。这是手机百度首次公开超级 App 背后的技术知识。活动分云端和客户端技术两个会场同时举办&#xff0c;吸引了众多技术爱好者前来学习交流。现场人数爆满&#xff0c;气氛热烈。…

Scala和范畴论 -- 对Monad的一点认识

背景 所有一切的开始都是因为这句话&#xff1a;一个单子&#xff08;Monad&#xff09;说白了不过就是自函子范畴上的一个幺半群而已&#xff0c;有什么难以理解的。第一次看到这句话是在这篇文章&#xff1a;程序语言简史(伪)。这句话出自Haskell大神Philip Wadler&#xff0…

Linux环境编程--linux中的perror、exit、_exit、wait 和 waitpid

perror&#xff1a;#include<stdio.h> #include<stdlib.h>定义函数 void perror(const char *s); perror ("open_port");函数说明 perror ( )用 来 将 上 一 个 函 数 发 生 错 误 的 原 因 输 出 到标 准 错误 (stderr) 。参数 s 所指的字符…

DeepMind 打造 AI 游戏系统,可以玩扑克、国际象棋、围棋等,战斗力爆表

编译 | 禾木木 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 谷歌母公司 Alphabet 的人工智能实验室 DeepMind 长期以来一直投资于游戏人工智能系统。实验室的理念是&#xff0c;游戏虽然缺乏明显的商业应用&#xff0c;但却是认知和推理能力的独特相关挑战。这使…

WPF-动态加载

添加一个UserControl&#xff0c;命名为BusyIndicator&#xff0c;view为空&#xff0c;在其.cs文件中定义一个类 1 /// <summary> 2 /// 动态实体 3 /// </summary> 4 public class AnimationObject 5 { 6 publ…

ORA-06502 when awr report produce

最近在生成一套系统的AWR报告时出现了如下报错&#xff1a;ORA-06502: PL/SQL: numeric or value error: character string buffer too small&#xff0c;然后生成AWR报告的过程就终止了&#xff0c;查看生成的AWR报告&#xff0c;发现报告时不完整的&#xff0c;AWR报告到Comp…

进程间通信学习小结(共享内存)

要使用共享内存&#xff0c;应该有如下步骤&#xff1a;1.开辟一块共享内存 shmget()2.允许本进程使用共某块共享内存 shmat()3.写入/读出4.禁止本进程使用这块共享内存 shmdt()5.删除这块共享内存 shmctl()或者命令行下ipcrm 共享内存可以说是最有用的进程间通信方式&#xff…

[ObjectiveC]NSDATA, NSDICTIONARY, NSSTRING互转

2019独角兽企业重金招聘Python工程师标准>>> NSDATA-->NSDICTIONARY NSDictionary *dict [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; NSDICTIONARY-->NSDATA NSData *data [NSJSONSerialization dat…

如流智会2021:技术结合场景 让企业知识懂员工

12月10日&#xff0c;“如流智会2021智能进化”在京举行&#xff0c;学界专家业界大咖云集荟聚&#xff0c;共商企业智能化转型之道。会上&#xff0c;百度集团副总裁、百度集团首席信息官&#xff08;CIO&#xff09;李莹表示&#xff1a;“智能经济时代&#xff0c;智能组织是…

WSFC 仲裁模型选择

今天我们再来详细讨论下关于WSFC的仲裁模型&#xff0c;主要仲裁模型的优缺点&#xff0c;应该如何去思考选择最佳合适方案WSFC引入仲裁&#xff0c;主要有两个目的跟踪群集当前运作票数是否符合仲裁模型协定&#xff0c;如果低于最少允许节点&#xff0c;则决定关闭群集&#…

关于进程间通信的学习心得

进程&#xff1a;进程是指独立地址空间的指令序列进程的五种状态&#xff1a;新建&#xff0c;就绪&#xff0c;运行&#xff0c;睡眠&#xff0c;僵死进程间通信&#xff1a;是不同进程之间进行一些"接触"&#xff0c;这种接触有简单&#xff0c;有复杂。机制不同&a…

Go modules基础精进,六大核心概念全解析(上)

Go 语言做开发时&#xff0c;路径是如何定义的&#xff1f;Go Mudules又为此带来了哪些改变&#xff1f;本文将会全面介绍Go Modules六大核心概念&#xff0c;包括了设计理念与兼容性原则等&#xff0c;掌握这些技术点对于管理和维护Go 模块有重要价值。 在Go Modules 的前世今…

PARAMETERS 指令

语法: PARAMETERS <p> [DEFAULT <f>] [LOWER CASE] [OBLIGATORY] [AS CHECKBOX] [RADIOBUTTON GROUP <rad>] 实例: PARAMETERS: NAME(8), AGE TYPE I, BIRTH TYPE D. OBLIGATORY:强制要求输入, 屏幕上会出現一个“√” , 使用者必须要输入才可。 AS C…

阿里发布AliGenie2.0系统,“百箱大战”用上视觉武器

天猫精灵X1的升级版X2没有预期出现&#xff0c;而人机交互系统AliGenie升级到最新的2.0版本&#xff0c;功能强大。 3月22日&#xff0c;阿里巴巴人工智能实验室总经理浅雪&#xff08;陈丽娟&#xff09;发布AliGenie2.0系统&#xff0c;它最大的改进是在1.0的基础上增加了视觉…

Centos5.6 VNC安装配置【无错版】

不严格按本步骤就会出现VNC桌面花屏&#xff0c;就是桌面分离为一层一层的。。。 ---------------------------------------- 先装X window http://blog.csdn.net/21aspnet/article/details/6997549 ---------------------------------------- Centos5.6 VNC安装配置 一、检查是…

关于IOS的屏幕适配(iPhone)——资源适配

IOS的屏幕适配几乎不需要大量的代码操作&#xff0c;更多的时间我们只是动动鼠标选择一下就搞定。可以苹果在这方面做的还是比较人性的&#xff0c;解放了开发者。 首先来说说Iphone这几种屏&#xff08;由于最近做的是iPhone APP还未涉及到iPad&#xff0c;将来涉及到iPad时会…

Go modules基础精进,六大核心概念全解析(下)

Go 语言做开发时&#xff0c;路径是如何定义的&#xff1f;Go Mudules又为此带来了哪些改变&#xff1f;本文将会全面介绍Go Modules六大核心概念&#xff0c;包括了设计理念与兼容性原则等&#xff0c;掌握这些技术点对于管理和维护Go 模块有重要价值。 在上篇中&#xff0c;我…

京东区块链白皮书解读, 做“链接器”,一次技术宣言

前天&#xff0c;京东对外发布了《京东区块链技术白皮书(2018)》。 昨天&#xff0c;京东金融发布了旨在帮助中小银行提升零售信贷效率的产品“北斗”。目前&#xff0c;“北斗”已经接入包括江苏银行、南京银行、包商银行在内的近30家银行。京东金融还与近30家商业银行共同发起…

xauth: (stdin):1: bad display name LSPPC-Lenny:1 in add command

启动vnc4server之后出现如下错误提示&#xff1a;LSPPC-Lenny:~# vnc4serverxauth: (stdin):1: bad display name "LSPPC-Lenny:1" in "add" command New ‘LSPPC-Lenny:1 (root)’ desktop is LSPPC-Lenny:1 Starting applications specified in /root/…

使用 Python 和 OpenCV 构建 SET 求解器

作者 | 小白来源 | 小白学视觉小伙伴们玩过 SET 吗&#xff1f;SET 是一种游戏&#xff0c;玩家在指定的时间竞相识别出十二张独特纸牌中的三张纸牌&#xff08;或 SET&#xff09;的模式。每张 SET 卡都有四个属性&#xff1a;形状、阴影/填充、颜色和计数。下面是一个带有一些…

Delphi XE5 常用功具与下载

1.Delphi XE5 正式版http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.isohttp://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_upd1_win.iso2. cnpack 助手工具http://www.cnpack.org/download/unstable/CnWizards_1.0.1.665_…

maven学习(4)-Maven 构建Web 项目

紧接着上一节(3)&#xff0c;现在maven新建web项目&#xff0c;user-web。模拟一个用户登录的需求&#xff1a; 工程结构&#xff1a; pom.xml: <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…