【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

云中的 MySQL 是 DBA 的终结吗?

  • 2022-11-29
    北京
  • 本文字数:2182 字

    阅读完需:约 7 分钟

云中的 MySQL 是 DBA 的终结吗?

本文最初发布于 Daniel Nichter 的个人博客 Hack MySQL。


这篇博文是该系列 11 篇文章中的最后一篇:一篇是前言,其他 10 篇对应我写的 Efficient MySQL Performance 一书的 10 个章节。这里有完整列表。


几年前,我参加了 Oracle 在当地举办的一次聚会。令人敬畏的 Kenny Gryp 也在那里。但我记得最清楚的是和另一位 DBA 的对话,我和他不是很熟,所以不管你是谁,请原谅我后来忘记了你的名字。但我记得,当我说 MySQL 需要更多的 DBA 时,你说了什么:你说不需要,因为云正在接管 MySQL 管理。


多年后,我看到了这样的情况:招聘一个有经验的 MySQL DBA 变得极其困难;取而代之,我们招聘优秀的软件工程师(有时是刚从大学毕业的),并培训他们运维之前就有的 MySQL 机群,我们不期望他们“深入”MySQL——当然也没期望他们能成为 MySQL 专家。


现存的独立 MySQL 专家是我们这类人里的最后一批。


这里的“独立”是指使用 MySQL,但不开发它。当然,Oracle 会继续招聘和培训工程师来开发 MySQL,他们将成为他们这个开发领域的专家,但是,我这里说的是 DBA:管理 MySQL 并公开撰稿介绍 MySQL 的人 — 选择深入研究 MySQL 并进而成为专家的人,而不是被雇佣并进而成为专家的人。


那是可以的,因为现如今,MySQL DBA 的工作与其说是关于 MySQL,不如说是关于 MySQL 的一切:存储、计算、安全、合规性、数据平台和软件工程师。当然,对于更广泛的行业来说,也会有新的发展,不断出现的 Bug,以及一些需要独立专家来揭示并解决的常见问题。但总的来说,符合标准设置的 MySQL 就足够了。


这就是云的用武之地,因为没有 DBA 会真的想要在一个裸金属机群上操作 MySQL。是的,那很酷,很有技术含量——让你感觉很特别。但是,除非你是在一个稳定的(或变化非常缓慢的)环境中,否则你就要把太多的时间花费在硬件变化和问题跟踪上。


就像我们的个人电子设备一样,企业硬件的变化也非常频繁,因为销售人员需要把更新、更亮的产品卖掉。机架服务器中那些拥有 BIOS、固件和内核理想组合的 5TB 企业级 SSD 不是可以帮助 MySQL 运行得很好吗?再也不能买了。此外,最新的 BIOS 更改了风扇转速管理,这会影响 CPU 温度,进而影响 CPU 时钟速度,从而严重影响了查询响应时间。当测试备用电源板导致两者都失效时,你就翻白眼了……


正如我在 Efficient MySQL Performance 一书第 10 章所写的那样,云运行 MySQL,但它不能代替 DBA 的工作:



虽然“You”下面对勾的数量是“Cloud”下面的两倍,但“Cloud”下面的那 5 个对勾很重要,因为它们处理了所有底层工作(尤其是硬件)——最繁重而影响最小的那部分工作。根据你与 MySQL 的关系,“Cloud”下面的 5 项工作对你的影响会有所不同:


  • DBA

  • 云让 DBA 可以专注于提供更好的用户体验,从与“DBA”下的勾选项有关的方面。例如,提供更好的服务器和查询指标,帮助用户(软件工程师)理解应用程序如何影响 MySQL 及其性能。这就是我们的职业发生变化的原因:我们可以在上层与软件工程师开展合作,以便更有效地理解和利用 MySQL,而不是在下层与 MySQL 搏斗。这在云计算领域尤其重要,因为在云中,“大型硬件”非常昂贵,或者按使用量付费泛滥成风。

  • 软件工程师

  • 云将为你运行 MySQL,但这不同于管理。你很快就会发现,云仍然给你(或你的 DBA)留下了许多需要 DBA 完成的工作。在 MySQL 世界中,在线更改模式(运行 ALTER 语句而不阻塞任何查询)是一个常见的、云无法解决的需求。因此,如果你是一名云 MySQL 新手,请注意这一点,不要对此感到惊讶:如果你关心安全性和灾难恢复(DR)等问题,那么你需要多做一些工作才能使云中的 MySQL 真正达到生产状态。


随着时间的推移,我认为云提供商将提供更多的功能。例如,亚马逊提供了服务器指标、查询指标、DR 和 HA 的解决方案;但坦率地说,我认为它们还没有好到可以在“Cloud”列下增加一个对勾。例如,关于 Amazon RDS 和 Aurora,有一个地方就让我很恼火:当你为 DR 设置跨区域复制时,如果复制由于他们的问题而停止,亚马逊并不会监控或提醒你——他们当然也不会修复这个问题。这让我很恼火,因为复制是他们的产品特性,所以在这种情况下,他们应该监控并确保它能够继续工作。但是,它可能会悄无声息地失败,除非你知道存在这种情况,自己监控并修复它。即便如此,因为这是他们在他们那边设置的,我也遇到过无法从我这边解决的情况。


如果你还是不相信,我再举一个例子:我还遇到过这样的情况,亚马逊云科技说复制是按他们的 API 设置的,但 MySQL 没有针对复制做配置——这明显是亚马逊云科技方面犯的一个严重的错误,目前还没有简单的修复方法。购者自慎。


云 MySQL 正在发展,这意味着传统 DBA 对运行 MySQL 的关注将越来越少,而对帮助软件工程师有效地使用 MySQL 的关注将越来越多。


这就是我写 Efficient MySQL Performance 这样一本书的原因:针对使用 MySQL 的软件工程师,而不是 DBA,因为后者已经赢得了众所周知的战争:MySQL 已经在世界上很大的范围内运行,而且很有效。但是,关系数据库很复杂,有时候会让软件工程师无法从 MySQL 那里获取他们最需要的东西:性能。

但是,云并不关心 MySQL 的性能。不管是快的还是慢,收费都一样。这就是为什么云永远不会成为 DBA 的终结。这也是为什么我们转了一圈又回到了我书中的第一句话:



声明:本文为 InfoQ 翻译,未经许可禁止转载。


原文链接:https://hackmysql.com/post/book-10/

2022-11-29 18:263132
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 485.8 次阅读, 收获喜欢 1962 次。

关注

评论

发布
暂无评论
发现更多内容

如何为你的企业创建自助服务知识库

小炮

昆仑分布式数据库技术特点

KunlunBase昆仑数据库

分布式数据库 国产数据库

无所不云,开启你的美好旅行新体验!

天翼云开发者社区

响应速度提升80%以上,甘肃省医保信息平台稳固上线有法宝

华为云开发者联盟

数据库 华为云 华为云数据库 智慧医疗 医保

昆仑分布式数据库Sequence功能及其实现机制

KunlunBase昆仑数据库

分布式数据库

31 家企业入选阿里云首期云原生加速器,共建云原生行业新生态

阿里巴巴中间件

云计算 阿里云 云原生 加速器 生态伙伴

星汉未来成为 FinOps 产业标准生态联盟首批会员

星汉未来

云原生 开源社区 成本优化 IT运维

RTC 音频质量评价和保障

网易云信

WebRTC

云图说丨初识数据工坊DWR

华为云开发者联盟

大数据 数据处理 算子 数据工坊 工作流编排

10分钟快速玩转kunlun cluster

KunlunBase昆仑数据库

分布式数据库

广电行业如何上云?来抄作业!

天翼云开发者社区

分布式事务对于两阶段提交的错误处理

KunlunBase昆仑数据库

分布式数据库

“养老”变“享老”,老龄人口高峰与养老产业爆发催生金融需求

易观分析

养老服务 养老金融

为什么要选择昆仑分布式数据库?

KunlunBase昆仑数据库

国产数据库

【OpenMLDB Monthly Meeting】2022.2 月会议纪要

第四范式开发者社区

人工智能 数据库 开源 Meetup 特征平台

多任务学习模型之DBMTL介绍与实现

阿里云大数据AI技术

机器学习 深度学习 数据模型 多任务学习

史上最通俗,彻底搞懂字符乱码问题的本质

WorkPlus

企业IM首选移动数字化平台WorkPlus

WorkPlus

天翼云与龙芯完成产品兼容适配加速国产化云平台发展

天翼云开发者社区

经典的两阶段提交算法原理及缺陷

KunlunBase昆仑数据库

分布式数据库

在一条DML语句中插入/更新/删除/获取几百万行数据,你会特别注意什么?

KunlunBase昆仑数据库

分布式数据库

国内领先的云软件厂商安超云加入,为龙蜥社区注入新动能

OpenAnolis小助手

开源 操作系统 云厂商 国产

CRM系统改善业务的方法

低代码小观

CRM 客户关系管理 企业管理系统 CRM系统 企业管理工具

昆仑分布式数据库架构介绍

KunlunBase昆仑数据库

数据库 分布式数据库

天翼云TeleDB数据库为实现自主可控全面亮剑

天翼云开发者社区

穿透、击穿、雪崩…Redis这么多问题,如何解决?

华为云开发者联盟

redis 缓存 缓存穿透 缓存击穿 缓存雪崩

JavaScript 基础(一):语法和程序结构

devpoint

JavaScript 函数 数据类型 3月月更

C++ 内存管理中内存泄漏问题产生原因以及解决方法

Linux服务器开发

C/C++ 内存管理 内存泄漏 Linux服务器开发 Linux后台开发

昆仑分布式数据库技术优势

KunlunBase昆仑数据库

分布式数据库 国产数据库

Javascript实现上传图片并实现预览图片功能的三种方法

deal

3月日更 3月程序媛福利 3月月更

开发者说丨如何从零开始构建一个轻量级应用

华为云开发者联盟

Vue 低代码 页面 应用 AppCube

云中的 MySQL 是 DBA 的终结吗?_AI&大模型_Daniel Nichter_InfoQ精选文章