回顾 Oracle 在 MySQL 8.0 中的管理工作
对于新兴技术而言,社区管理并不难。经过 29 年的发展,MySQL 已成为全球数百万用户最常使用和最信赖的开源数据库之一。管理如此规模的社区可能非常复杂。我们努力在稳定性和创新性之间找到平衡,为客户提供稳定且可预测的平台,并为技术用户创建新功能。Oracle 通过投资于工程、社区和市场对该技术的采用,持续提供对 MySQL 社区的管理和领导。
作者:Frederic Descamps,EMEA 和亚太地区的 MySQL 社区经理。于 2016 年 5 月加入 MySQL 社区团队。担任开源和 MySQL 顾问已超过 15 年。最喜欢的主题是高可用和高性能。
本文和封面来源:https://blogs.oracle.com/,爱可生开源社区翻译。
本文约 1800 字,预计阅读需要 6 分钟。
引言
对于新兴技术而言,社区管理并不难。经过 29 年的发展,MySQL 已成为全球数百万用户最常使用和最信赖的开源数据库之一。管理如此规模的社区可能非常复杂。我们努力在稳定性和创新性之间找到平衡,为客户提供稳定且可预测的平台,并为技术用户创建新功能。Oracle 通过投资于工程、社区和市场对该技术的采用,持续提供对 MySQL 社区的管理和领导。
这里是一些例子,可以帮助你理解 MySQL 如何在不断扩展的应用中技术进步。近期,随着 MySQL 全新版本 9.0 的发布,现在是回顾并看看自八年前首次发布以来,MySQL 8 已经取得了多少成就的好时机。
Oracle 继续在 MySQL 上进行大量投资,包括社区版、企业版和云版。实际上,许多人并不知道 MySQL 社区版是 MySQL 的核心,也是我们的企业版和云解决方案的来源。MySQL与 HeatWave 协同工作。当 MySQL 通过新功能或错误修复得到改进时,HeatWave 也会持续地得到改进。而当 MySQL 需要为 HeatWave 数据库服务进行修改或更正时,这些代码也会进入 MySQL,社区版就会从这些 HeatWave 的创新中受益。当然,我们的云服务由于技术原因与本地版本有所不同,我们很快就会介绍这些原因,并且出于明显的商业原因,以使我们与竞争对手区别开来。
记住,开发 MySQL 和我们的云服务(HeatWave)的是同一组工程师团队!MySQL 并没有三个不同的分支。这里有社区版的 MySQL,然后是一些为 MySQL 企业版构建的额外组件和外部产品,最后是 HeatWave,它不仅仅是 MySQL(包括分析、数据湖、机器学习、通用人工智能),所有的魔力都在云端发生,在特定的优化机器上作为 MySQL 的次要引擎。
MySQL 8.0 的成果
以下是 MySQL 8 周期内取得成果的简短总结:
8.0 版本来自社区的 467 项贡献(其中 422 项被接受)。
大型公司正在使用 MySQL,甚至为其做出贡献,例如对于 8.0 版本,我们收到了:
- 来自 Meta(之前称为 Facebook)的 58 项贡献
- 来自 Booking.com 的 29项 贡献
- 来自腾讯的 17 项贡献
新功能包括:
- 为 JSON 引入了新的数据类型及其相关所有功能
- 即时 DDL(由腾讯游戏提出的贡献)
- 二进制日志压缩
- 新的 InnoDB Redo Log 设计
- 移除冒犯性术语
- 安全认证插件
- 新的火山迭代器执行器用于优化器(引入了 EXPLAIN ANALYZE)
- Hash Join
- CLONE 插件
- SQL 的巨大飞跃(窗口函数、公用表表达式 CTE、JSON_TABLE、横向表引用 LATERAL 等)
- 复制连接自动故障转移
- 并行 InnoDB DDL 线程
- 隐形索引和列
- GIPLK 模式
- 代码中的遥测指标
- ...等等!
别忘了为本地架构所提供的 MySQL Shell 的 AdminAPI(MySQL ReplicaSet, InnoDB Cluster, InnoDB ClusterSet, 只读副本)和 Router。别忘了透明的读写分离,这是一个期待已久的特性,最近已经发布。
听取我们社区用户和客户的反馈后,我们还修改了我们的发布周期,以采纳并支持 MySQL LTS(长期支持)。这也是我们工程团队的巨大努力,我们还处理了与错误修复、性能回归等相关的常见挑战...
针对安全性、稳定性以及云和多云环境的准备的修复:
- MySQL 团队(验证、开发、文档)处理了 MySQL 8 的 16,841 个错误,并修复了其中的 15,894个!(其余的不是错误、重复的、仍在处理中...)
- 完成了 288 个工作日志,用于 LTS 发布。
- 我们回滚了一些 C API 中的更改,并与 Ubuntu 团队紧密合作,使他们能够包含 MySQL 8.4 LTS。
- 团队为 8.4 LTS 修复了 11 个性能回归问题。
社区
所有这些改进和新特性的核心是 MySQL 社区。许多这些创新也是我们与客户和社区用户的合作共同推动的。例如,双重密码支持的实现是应 Booking.com(以及许多其他请求)的要求。
我们在云服务中也做同样的事情。当这些错误在我们的服务中出现并且可以在我们客户的特定负载下复现时,当然,这些修复也会推送到社区版。我们的团队甚至在客户注意到之前就发现了错误,并且我们修复了它们。MySQL Heatwave 服务有中间的小版本发布来处理这些错误。
例如,与多值索引表运行查询相关的错误,这有时会迫使服务器意外退出,通常在执行使用此索引的复杂 SELECT 查询时,是由我们云服务运维团队发现的,并在 8.0.37 和 8.4.0 中修复。我们最近发现并修复了一打这样的错误,这些错误是在云中发现的,而不是由客户或社区用户报告的。
MySQL 用户组在世界各地都很活跃,MySQL 社区团队支持他们找到地点、演讲者和讨论主题,并帮助推广和发展他们的社区。
我们在 Oracle ACE 计划中创建了一个专业化类别,以表彰 MySQL 社区的成员。该计划奖励并推广个人对 Oracle 社区的个人贡献。
社区团队通过 MySQL Rockstars Awards 表彰卓越。该奖项授予在过去一年中为推广 MySQL 做出工作、热情和能量贡献的社区成员。
MySQL 社区团队还定期举办北美和比利时峰会。
Oracle 对 MySQL 的承诺和投资是巨大的,它平衡了客户对稳定性的渴望和工程师对创新及新特性的渴望。我们继续致力于保护平台、修复错误、增强性能,并为多云环境做好准备,以确保互操作性和选择性。
我们期待听到您,MySQL 社区,关于 8.0 版本中您最喜欢的创新。我们努力在稳定性和创新之间找到平衡,为客户提供一个稳定和可预测的平台,并为技术用户创造新特性。
通过我们在工程、社区和技术采用方面的持续投资,Oracle 对 MySQL 社区的管理和领导将确保 MySQL 在未来几代人中的成功。
我们社区重要性的另一个证明是 7 月 23 日发布的最新版本。这是一个非周期性发布,解决了社区用户报告的一个重大错误。请升级到 8.0.39、8.4.2 或 9.0.1。
更多技术文章,请访问:https://opensource.actionsky.com/
关于 SQLE
SQLE 是一款全方位的 SQL 质量管理平台,覆盖开发至生产环境的 SQL 审核和管理。支持主流的开源、商业、国产数据库,为开发和运维提供流程自动化能力,提升上线效率,提高数据质量。
✨ Github:https://github.com/actiontech/sqle
📚 文档:https://actiontech.github.io/sqle-docs/
💻 官网:https://opensource.actionsky.com/sqle/
👥 微信群:请添加小助手加入 ActionOpenSource

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MySQL Undo 工作机制历史演变
前几天遇到一个关于 Undo 变大的 CASE,为了方便后续排查问题,于是系统的梳理 Undo 表空间的相关知识,希望对读者朋友有所帮助。 >作者:杨奇龙,网名“北在南方”,资深 DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。 > >爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 > >本文约 1700 字,预计阅读需要 6 分钟。 前言 前几天遇到一个关于 Undo 变大的 CASE(大致的场景参见文章末尾),为了方便后续排查问题,于是系统的梳理 Undo 表空间的相关知识,希望对读者朋友有所帮助。 Undo 工作机制 保障事务原子性,提供数据回滚 当数据库崩溃时或者事务回滚时,InnoDB 事务系统可以利用 Undo Log 来进行数据回滚。 多版本并发控制(MVCC)- 隔离性 InnoDB 存储引擎中 MVCC 的实现是通过 Undo Log 来实现的。 当事务 A 读取某一行记录时,若该记录已经被其他事务 B 占用,当前事务 A 可以通过 Undo Log 读取之前的行版本信息,以此...
- 下一篇
MySQL 插入记录,主键索引冲突加什么锁?
这一期开始进入锁的实战篇,结合原理分析各种场景的加锁情况。 >作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 > >爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 1. 准备工作 创建测试表: CREATE TABLE `t1` ( `id` int unsigned NOT NULL AUTO_INCREMENT, `i1` int DEFAULT '0', PRIMARY KEY (`id`) USING BTREE, KEY `idx_i1` (`i1`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3; 插入测试数据: INSERT INTO `t1` (`id`, `i1`) VALUES (10, 101), (20, 201), (30, 301), (40, 401); 2. 加锁情况 t1 表中已经有一条 <id = 10> 的记录,我们执行以下 insert 语句,再插入一条 <id = 10> 的记录...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS7,CentOS8安装Elasticsearch6.8.6