前言 

  已知MariaDB预计于今年下半年将以spac形式完成上市,最近也看了不少文章,发现MariaDB正在以一个迅猛的速度超越mysql,mysql 可以说是开源数据库中最具代表性的一个,甚至可以说是一个时代,但MariaDB在一定程度上也确实表现出了优于mysql的特性,这让MySQL的未来发展形式让人担忧。从以下几个方面可以得出上述结论

出身  

  它是由MySQL的创始人Michael Widenius主导开发的,MySQL数据库中最重要的一个分支,之后SUN收购 了MySQL,于是就有了Oracle MySQL这个分支,在SUN被Oracle收购后,MySQL的所有权也落入Oracle的手中。之后 Michael Widenius在2009年创立了MariaDB。是完全兼容MySQL的存在。事实证明MariaDB的更新版本早已经超过了Oracle维护下的MySQL版本,所以MariaDB的血统在根本上说就是继承于mysql,而当下的mysql8.x版本及以后都是拥有oracle血统的mysql,这之中就有了商业模式的区别,oracle是闭源产品,而原先的mysql及现在的MariaDB仍选择开源商业模式,模式不同盈利手段也就不多做赘述。

发展潜力

  MariaDB 根据当下云时代的市场特性推出了两款产品即SkySQL和Enterprise

  SkySQL是MariaDB在2020年推出的企业级数据库即服务,增速迅猛、存储安全性等方面的表现均比mysql,AuroraDB更出色。以容器为基础,更能够跨云部署迁移,其Xpand技术,可以将资料切分成片,并且同步对扩展的数据库节点写入资料,由于资料能够在多节点同时读取和写入,因此分布式SQL不只可以提供线性的规模扩展,同时也能保持交易强一致性和ACID特性。

  MariaDB Xpand可以容忍单节点故障,因为Xpand会跨多个数据库节点,存储资料的冗余副本,而分布式SQL的节点故障容忍程度更高,SkySQL上的Xpand在云计算地区(Region)中的不同区域(Zone)分散冗余副本,比如说上海区的云服务器上的数据,在北京区的服务器上同样可以并存,官方提到,即便整个区域都故障,用户也不会丢失任何资料,因为至少有一个人信息料副本存储在另一个区域中,容灾能力更强。
Enterprise作为MariaDB基于服务器端的企业版本,Enterprise旨在将开源与企业功能相结合,具有更强的可靠性和稳定性,并包含许多向后兼容的功能,让企业不需要经常性的承担升级的风险和不确定性,但同时又能使用新功能。其主要竞品正是如今隶属于Oracle的MySQL。

兼容性

  从兼容性上来说MariaDB简直可以说是完败mysql,就单单MariaDB的向后兼容就可以让从众多用户不必担心升级带来的影响,而反观mysql从mysql5.X到mysql8.X就是不可逾越的(这其中当然原因也比较复杂),两者技术同源,而MariaDB可以对MySQL实现一键迁移,并且不论是在数据写入或是查询方面,都更有优势。

可替代性

  讲到可替代性,对于中小企业来说理由就很简单了,就是性价比,说的直白了就是谁更稳定,更便宜就选择谁,在这上面可不存在什么情怀,对于程序员来说就更是如此了,老板,客户用什么数据库,就掌握什么技能就行了,需要考虑的就是稳定性,和升级问题,安全问题等等,学了mysql的在MariaDB上依旧可以操作,完全属于平滑过渡,但随着版本更新,差异也会雨来越大,最后也必须回归到二选一的局面。

MYSQL时代是否将结束的更多相关文章

  1. [CB]Intel 2018架构日详解:新CPU&新GPU齐公布 牙膏时代有望明年结束

    Intel 2018架构日详解:新CPU&新GPU齐公布 牙膏时代有望明年结束 北京时间12月12日晚,Intel在圣克拉拉举办了架构日活动.在五个小时的演讲中,Intel揭开了2021年CP ...

  2. MySql开始日期、结束日期查询

    str_to_date('2016-08-24', '%Y-%m-%d %H') validStartTime str_to_date('2016-09-16', '%Y-%m-%d %H') val ...

  3. mysql 查询表死锁 和结束死锁的表步骤

    1.查询是否锁表 show OPEN TABLES ; 2.查询进程 show processlist 查询到相对应的进程===然后 kill    id 3.查看正在锁的事务 SELECT * FR ...

  4. mysql查询表死锁和结束死锁的方法

    1.查询是否锁表 show open tables where in_use>0; 2.查询进程 show processlist 查询到相对应的进程,然后 kill id 3.查看正在锁的事务 ...

  5. mysql 查询表死锁 和结束死锁的表步骤以及锁表等级

    1.查询是否锁表show OPEN TABLES where In_use > 0; 2.查询进程 show processlist  查询到相对应的进程===然后 kill    id 补充: ...

  6. 数据库 之MySQL 简单教程

      So Easy系列之MySQL数据库教程 1.   数据库概述 1.1.  数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...

  7. MySQL操作使用

    这只是一些简单的数据库命令,作为新手记录一下,以供后面查询使用. 查询服务器版本号和当前日期: select version(), current_date; 一个命令通常用一个SQL语句组成,后面跟 ...

  8. Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes

    Windows mysql提示:1045 access denied for user 'root'@'localhost' using password yes http://blog.csdn.n ...

  9. 平时一些mysql小技巧及常识

    >navicat premium 快捷键1.ctrl+q 打开查询窗口2.ctrl+/ 注释sql语句3.ctrl+shift +/ 解除注释4.ctrl+r 运行查询窗口的sql语句5.ctr ...

随机推荐

  1. 离线下载第三方Python包

    1.进入Python第三方包下载地(https://pypi.org/)搜索自己需要的包 2.下载需要的包的版本 3.将.whl格式的文件更改为.zip文件,并且解压 4.将解压的2个文件放到Pyth ...

  2. 《剑指offer》面试题14- I. 剪绳子

    问题描述 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m.n都是整数,n>1并且m>1),每段绳子的长度记为 k[0],k[1]...k[m] .请问 k[0]*k[1]* ...

  3. 《剑指offer》面试题30. 包含min函数的栈

    问题描述 定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中,调用 min.push 及 pop 的时间复杂度都是 O(1).   示例: MinStack minSt ...

  4. 「Python实用秘技04」为pdf文件批量添加文字水印

    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第4期 ...

  5. 使用 fail2ban 保护 frp 服务

    背景 我们一般会使用 fail2ban 来保护暴露到公网的提供密码登录的 ssh 连接等. 但使用 frp 穿透后所有的从外网访问都会变成 127.0.0.1 进入的,原本能用 fail2ban 保护 ...

  6. 华为联运游戏审核驳回:在未安装或需更新HMS Core的手机上,提示安装,点击取消后,游戏卡屏(集成的6.1.0.301版本游戏SDK)

    问题描述 更新游戏SDK到6.1.0.301版本之后,游戏包被审核驳回:在未安装或需更新华为移动服务版本(HMS Core)的手机上,提示安装华为移动服务(HMS Core),点击取消,游戏卡屏.修改 ...

  7. @WebServlet注解(Servlet注解)

    @WebServlet 注解的属性 @WebServlet 用于将一个类声明为 Servlet,该注解会在部署时被容器处理,容器根据其具体的属性配置将相应的类部署为 Servlet.该注解具有下表给出 ...

  8. golang中的排序算法实现

    1. 冒泡排序算法实现 package main import "fmt" func main() { values := []int{3, 98, 55, 46, 22, 3, ...

  9. 返回void-(响应ajax,响应json格式)(了解)

    将jquery库文件加入到idea中 引入json依赖 index.jsp中 设置按钮发起ajax请求 从处理器方法返回void,响应ajax请求 MyController中

  10. 配置kubectl连接多个kubernetes集群

    背景:我们通过会有多个k8s集群,例如集群(cn-k8s)和集群(jp-k8s),那个就需要有一台服务器可以同时访问两个集群,方式:将2个集群的config信息存放到一个文件中,通过使用 kubect ...