浅谈MySQL和MariaDB区别(mariadb和mysql的性能比较)

 更新时间:2018年02月21日 16:35:10   投稿:mdxy-dxy  
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。

MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。

MariaDB名称来自麦克尔·维德纽斯的女儿玛丽亚(英语:Maria)的名字。

MariaDB直到5.5版本,均依照MySQL的版本。因此,使用MariaDB5.5的人会从MySQL5.5中了解到MariaDB的所有功能。从2012年11月12日起发布的10.0.0版开始,不再依照MySQL的版号。10.0.x版以5.5版为基础,加上移植自MySQL 5.6版的功能和自行开发的新功能。

在存储引擎方面,10.0.9版起使用XtraDB(名称代号为Aria)来代替MySQL的InnoDB。

MariaDB的API和协议兼容MySQL,另外又添加了一些功能,以支持本地的非阻塞操作和进度报告。

这意味着,所有使用MySQL的连接器、程序库和应用程序也将可以在MariaDB下工作。

在此基础上,由于担心甲骨文MySQL的一个更加封闭的软件项目,Fedora的计划在Fedora 19中的以MariaDB取代MySQL

MYSQL 相信大家都很清楚是什么了。那么mariadb是什么呢?

MariaDB数据库管理系统是MySQL的一个分支。是由MySQL之父Michael开发的。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险

那么两者之间的性能谁好谁差呢,我们现在就在同一台电脑上简单的测试下

我的笔记本环境是

cpu :I3

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

内存:8G

系统:win10 64位

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 desc limit 9000000,1

得出ID是1000000

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

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

总结:两个数据库各有优势 找到自己合适的优化方式就好,咱是小白一个 不会优化 以上是无聊时的测试。

相关文章

  • 详解MongoDB4.0构建分布式分片群集

    详解MongoDB4.0构建分布式分片群集

    这篇文章主要介绍了详解MongoDB4.0构建分布式分片群集,详细的介绍了什么是MongoDB分片和具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • MongoDB内存过高问题分析及解决

    MongoDB内存过高问题分析及解决

    有个3.2.7版本的mongo复制集,最近几天频繁告警内存过高,所以这篇文章给大家介绍了MongoDB内存过高问题分析及解决。并通过代码示例给出详细的解决方案,需要的朋友可以参考下
    2024-03-03
  • MongoDB实现创建删除数据库、创建删除表(集合 )、数据增删改查

    MongoDB实现创建删除数据库、创建删除表(集合 )、数据增删改查

    这篇文章介绍了MongoDB实现创建删除数据库、创建删除表(集合 )、数据增删改查的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • 浅析Mongodb性能优化的相关问题

    浅析Mongodb性能优化的相关问题

    数据库性能对软件整体性能的影响是不言而喻的,那么,当我们使用MongoDB时改如何提高数据库性能呢?这篇文章通过范式化与反范式化、填充因子的使用和索引的使用三个方面来谈了谈Mongodb性能优化的相关问题,有需要的朋友们下面来一起看看吧。
    2016-10-10
  • MongoDb的

    MongoDb的"not master and slaveok=false"错误及解决方法

    今天小编就为大家分享一篇关于MongoDb的"not master and slaveok=false"错误及解决方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Mongo DB增删改查命令

    Mongo DB增删改查命令

    本文给大家汇总介绍了一下Mongo DB数据库的增删改查命令以及部分的示例,有需要的小伙伴可以参考下,希望对大家学习Mongo DB能够有所帮助
    2016-12-12
  • 详解MongoDB中的日志模块

    详解MongoDB中的日志模块

    这篇文章主要介绍了MongoDB中的日志模块的相关资料,帮助大家更好的理解和学习使用MongoDB数据库,感兴趣的朋友可以了解下
    2021-04-04
  • 详解MongoDB中创建集合与删除集合的操作方法

    详解MongoDB中创建集合与删除集合的操作方法

    因为MongoDB属于NoSQL,所以集合collection相当于关系型数据库中的表table,这里我们就来详解MongoDB中创建集合与删除集合的操作方法:
    2016-06-06
  • MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划

    这篇文章主要介绍了MongoDB性能篇之创建索引,组合索引,唯一索引,删除索引和explain执行计划的相关资料,需要的朋友可以参考下
    2016-02-02
  • 详解mongodb 主从配置

    详解mongodb 主从配置

    我研究过的nosql,memcache,redis,mongodb都是支持分布式的,生产环境中用过memcache,redis,性能稳定。mongodb是最接近关系型数据库的,不用花很多时间去构建数据库模型,将来我会用mongodb,看一下主从配置
    2014-07-07

最新评论