专栏名称: 架构师之路
架构师之路,坚持撰写接地气的架构文章
目录
相关文章推荐
架构师之路  ·  用单库自增键来生成业务id,后期要怎么分裤? ·  6 天前  
架构师之路  ·  世界上最SB的事情就是... ·  5 天前  
架构师之路  ·  程序员的薪酬大揭秘(全球调研) ·  1 周前  
51好读  ›  专栏  ›  架构师之路

黑悟空:MariaDB会不会取代MySQL,成为新的王者?(只聊技术)

架构师之路  · 公众号  · 架构  · 2024-08-28 19:05

正文

有个朋友准备创业做Saas产品,问我:听说MariaDB才是新的王者,技术选型有没有必要抛弃MySQL?

我旗帜鲜明的建议:没有历史包袱的话,不用抱着MySQL不放。


简单说下原因。


MySQL是怎么起来的?

MySQL在90年代中期快速发展,特别是与Linux,Apache,PHP一起使用的LAMP组合包,风靡一时,曾一度全球超过60%的网站采用LAMP架构。
画外音:近年PHP没落,但MySQL依然是RDB领域的主导者。

MariaDB是怎么出现的?和MySQL是什么关系?
2008年,Sun收购了MySQL,之后又被Oracle收购,这引发了开源社区对MySQL未来发展的担忧

MySQL能持续保持开放性吗?

MySQL能持续保持独立性吗?

MySQL会被Oracle限制吗?

MySQL会变为商业版吗?


于是,MySQL创始人从MySQL拉了一个分支,并承诺继续以GPL发布,保持开放性与独立性,这就是后来的MariaDB。


MySQL目前由Oracle主导,大伙看一下今年7月份MySQL发布的9.0大版本:

MySQL9.0大版本发布,它是不是故意的...

你就能知道,其未来大致会变成什么样?

MariaDB由社区主导,开发者和社区能够直接参与其功能改进。除了原有优秀特性的继承,诸多新功能与优化逐步引入。


总的来说,MariaDB的出现,是社区对MySQL未来不确定性与对开源理念的坚守做出的反应。

无可避免的,MariaDB和MySQL开始了直面的竞争。


技术上来说,MariaDB与MySQL有什么异同?


MariaDB新增十多个存储引擎,比较有特色的有:

(1)Aria:适用于快速读取快速写入场景,替代为人诟病的MyISAM,支持事务,支持崩溃恢复;

(2)TokuDB:适用于大数据量写入场景,支持事务,支持高压缩比,减少存储空间;

(3)Spider:适用于水平分片场景,支持数据分片,将数据分布在多个服务器上;

(5)Dynamic Comumns:支持动态列,提供灵活的数据结构;

(6)ColumnStore:适用于数据仓库与数据分析场景,提供列式存储与查询优化;

(7)SphinxSE:适用于搜索引擎场景,全文索引场景

画外音:MariaDB诚意满满,重视用户反馈,针对不同的场景推出了对应的存储引擎解决方案;反观MySQL,还是固守InnoDB,MyISAM,MEMORY等几件套,千年不变。


MariaDB进行了大量性能优化,比较重要的有:

(1)内存存储引擎优化:MariaDB比MySQL快24%;

画外音:有一些不太复杂的场景,为了简化系统组件,可以使用内存存储引擎替代缓存。

(2)连接池优化:MariaDB在海量连接上进行了优化,可以支持多达20W个连接;

(3)复制优化:MySQL的复制性能一直被人所诟病,MariaDB的复制速度比MySQL快2倍。

(4)...

MariaDB还增加了一些新特性,比如:

(1)WITH子句:可以定义一个临时结果集,在后续的增删查改中使用;

(2)KILL命令:当会话消耗过多资源或者死锁时,可以强行终止会话,DBA用的比较多;

(3)…


MariaDB会不会取代MySQL,成为新的王者?


目前,这样的一些事情正在发生:
(1)对开源有强烈需求的新企业,在技术选型时,会重点考虑MariaDB;

(2)一些传统的大公司(例如:三星,诺基亚,欧洲汽车等),也在尝试逐步的迁移;

(3)一些注重开源的Linux版本(例如Fedora,Red Hat)默认使用MariaDB而不是MySQL,这对MariaDB的市场推广起到了较大的正向作用;

(4)最重要的,社区中的人心,不可逆转的倒向了MariaDB:

如上图,从14年开始,MySQL的相关话题讨论逐年降低,MariaDB则是逐年增高。


因此,个人判断:总有一天MariaDB会取代MySQL。但这一天,可能要等二十年。

MariaDB成为主流,阻力在哪里?

58还有系统用10年前的C#跑着的,你猜,为什么不升级为Java?

三年前,我们才完全从MySQL5.6升级为5.7,你猜,为什么?

两年前,我们才完全将memcache升级为redis,你猜,为什么?

...

有一条架构设计铁律如果系统没有问题,就不要动它


因此... 只有...
新公司成为主流,老公司逐渐退出历史舞台…

年轻架构师上位,老派架构师退出历史舞台…

MariaDB,才会取代MySQL,成为王者。


相关文章
MySQL9.0大版本发布,它是不是故意的...
学习MySQL,最好的项目是...(收藏不亏)

调研

(1)你们用MariaDB了吗?为什么不用?

(2)你怎么看:果系统没有问题,就不要动!