欢迎投稿

今日深度:

解析Mariadb与MySQL的区别,解析mariadbmysql

解析Mariadb与MySQL的区别,解析mariadbmysql


MariaDB是MySQL源代码的一个分支,随着Oracle买下Sun,MySQL也落入了关系型数据库王者之手。在意识到Oracle会对MySQL许可做什么后便分离了出来(MySQL先后被Sun、Oracle收购),MySQL之父的Michael以他女儿Maria的名字开始了MySQL的另外一个衍生版本:MariaDB。这两个数据库究竟有什么本质的区别没有?

区别一:

MariaDB不仅仅是Mysql的一个替代品,MariaDB包括的一些新特性使它优于MySQL。

区别二:

MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。

MariaDB 是一个采用Aria存储引擎的MySQL分支版本, 这个项目的更多的代码都改编于 MySQL 6.0

区别三:

通过全面测试发现,MariaDB的查询效率提升了3%-15%,平均提升了8%,而且没有任何异常发生;以qp为单位,吞吐量提升了2%-10%。由于缺少数据支持,现在还不能得出任何结论,但单从测试结果看来还是非常积极的。join中索引的使用以及查询优化,特别是子查询方面,MariaDB都有不少提升。此外,MariaDB对MySQL导入导出有良好支持。

下面进行简单性能测试:

测试环境:

系统:win10 64

cpu :I3

内存:8G

硬盘:普通机械硬盘(5400转)

MYSQL版本:5.6

mariaDB版本:10.3

下面分别在MYSQL 和mariaDB 建库建表 插入千万级的测试数据 ID为主键,数据库引擎:MyISAM


查询语句均在Navicat下运行

1.先查询九百万条后的20条数据 就是下面这个语句

select * from usertb limit 9000000,20

mysql 的处理时间是3.09秒


mariaDB的运行时间是1.89秒


2.查询九百万条后的20条数据 根据ID倒序 就是下面这个语句

select * from usertb order by id desc limit 9000000,20

MYSQL用时121.26秒


MariaDB用时75.73秒


3.最后我们换条SQL语句来测试。用下面的SQL语句(MYSQL 常用的优化分页的语句):

select * from usertb where id<(select id from usertb order by id desc limit 9000000,1) order by id desc limit 20

MYSQL 用时3.13秒


MariaDB却用了70秒


为什么呢?个人猜想也是不是MariaDB的子查询没有MYSQL的快?于是再次测试

将上面的语句拆分成两条sql语句在MariaDB里执行查询如下:

select id from usertb order by id desclimit 9000000,1

得出ID是1000000

再查询 select * from usertb whereid<1000000 order by id desc limit 20

发现两条SQL语句一起执行的时间也是3秒左右

总结:两个数据库各有优势,找到自己合适的优化方式就好。

www.htsjk.Com true http://www.htsjk.com/mariadb/26725.html NewsArticle 解析Mariadb与MySQL的区别,解析mariadbmysql MariaDB是MySQL源代码的一个分支,随着Oracle买下Sun,MySQL也落入了关系型数据库王者之手。在意识到Oracle会对MySQL许可做什么后便分离了出来(MySQ...
相关文章
    暂无相关文章
评论暂时关闭