热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL的替代方案:MariaDB数据库

MariaDB是一个向后兼容、替代MySQL的数据库服务器。它包含所有主要的开源存储引擎。MariaDB源代码公开存放于Launchpad项目托管平台,同时也提供了二进制和编译包供下载。MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的Xtr
MariaDB是一个向后兼容、替代MySQL的数据库服务器。它包含所有主要的开源存储引擎。MariaDB源代码公开存放于Launchpad项目托管平台,同时也提供了二进制和编译包供下载。
MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它使用了Percona的 XtraDB,InnoDB的变体,分支的开发者希望提供访问即将到来的MySQL 5.4 InnoDB性能。这个版本还包括了 PrimeBase XT (PBXT) 和 FederatedX存储引擎。

MariaDB名称由来
为何改了个名字呢,这其中是有些典故的。
MySQL之父Widenius先生离开了Sun之后,觉得依靠Sun/Oracle来发展MySQL,实在很不靠谱,于是决定另开分支,这个分支的名字叫做MariaDB。
随着Oracle计划把MySQL搞成闭源的声音越来越多,对MySQL何去何从的讨论也越来越多。由于MySQL是遵循GPL协议的,那么Oracle需要分发、传播和发布的时候就必须要开源。但是如果Oracle一定要把MySQL变得封闭起来,它也不是没有办法,比如:逐渐把开源社区里不亲近oracle的清理出去;或者让MySQL必须依赖的一些oracle闭源的软件和功能,使得MySQL不配合这些功能就变得非常难以使用等。最近,MySQL的新版本里面就去掉了对bug修复后进行验证的测试用例;这样,社区的人就无法保证自己以后发布的版本,在下一个版本里不会出现之前用户之前report过的bug。
商业毕竟是商业,Sun花了10亿美元收购MySQL,然后Oracle花了74亿美元收购Sun,这些钱都是白花花的银子。Larry. Ellison,Oracle的CEO,曾经明确表示不会放弃MySQL,换言之,也就是说,不会放过MySQL这块蛋糕。因为Oracle是按照CPU核数来计算licence的,这个不能改变,也无法改变。这也限制了Oracle在分布式领域的发展,而MySQL在分布式领域的贡献有目共睹。据小道消息,Oracle已经把它的一部分核心源码开放给了MySQL的部分核心开发人员,以促进MySQL 5.6进一步的稳定和扩大影响力。我们不知道Oracle有什么样的商业企图,但是,你如果认为MySQL会一直这样白白给你使用的话,那么Larry. Ellison就是一个傻子。
Larry. Ellison不是傻子,所以后来涌现了MySQL的很多分支,包括MariaDB,Drizzle,goole,facebook,阿里集团等维护的自己的分支版本。除了MariaDB,Drizzle以外,这些分支版本都是各个商业公司为了满足各自公司的需求而对源码进行修改和调整的版本,适合不适合你的业务场景我无从分辨。Drizzle是2008年从MySQL 6.0分支出来的,并且它明确申明了,部分MySQL的蹩脚(Gotchas)特性,它都不会保留,也就是说它和MySQL是不完全兼容的。
MySQL前CTO,被称为MySQL之父的Michael “Monty” Widenius在2009年2月,创办了Monty Program AB,并建立了mariaDB这个MySQL高性能的分支。MariaDB是发展最快的MySQL分支版本,与MySQL兼容并且有很多新的功能。
MariaDB有个很性感的中文名玛莉亚DB,对宅男型的DBA来说,终于有一个女性DB陪伴了。下面就让我们来看看这些功能到底有哪些。 (MariaDB目前有时候会被墙,不过沃趣科技已经搭建好了镜像(mariadb.woqutech.com),将部分文档和资料搬到国内的服务器上来,以解各位技术男的相思之苦。)
MariaDB跟MySQL在绝大多数方面是兼容的,对于开发者来说,几乎感觉不到任何不同。目前MariaDB是发展最快的MySQL分支版本,新版本发布速度已经超过了Oracle官方的MySQL版本。
在Oracle控制下的MySQL开发,有两个主要问题:1. MySQL核心开发团队是封闭的,完全没有Oracle之外的成员参加。很多高手即使有心做贡献,也没办法做到。2. MySQL新版本的发布速度,在Oracle收购Sun之后大为减缓。Widenius有一个ppt,用数据比较了收购之前和之后新版本的发布速度。有很多bugfix和新的feature,都没有及时加入到发布版本之中。
以上这两个问题,导致了各个大公司,都开发了自己定制的MySQL版本,包括Yahoo!/Facebook/Google/阿里巴巴+淘宝网等等。
MySQL是开源社区的资产,任何个人/组织都无权据为己有。为了依靠广大MySQL社区的力量来更快速的发展MySQL,另外开分支是必须的。
MariaDB默认的存储引擎是Maria,不是MyISAM。Aria可以支持事务,但是默认情况下没有打开事务支持,因为事务支持对性能会有影响。可以通过以下语句,转换为支持事务的Aria引擎。
ALTER TABLE tablename ENGINE=MARIATRANSACTIOnAL=1;

MariaDB特点
MariaDB 是一个采用Maria存储引擎的MySQL分支版本,是由原来 MySQL 的作者Michael Widenius创办的公司所开发的免费开源的数据库服务器。
这个项目的更多的代码都改编于 MySQL 6.0,例如 “pool of threads”功能提供解决多数据连接问题。MariaDB 5.1.41 RC可以到这里下载,32位和64位已编译Linux版本,还包括源代码包。MariaDB基于GPL 2.0发布。

与 MySQL 相比较,MariaDB 更强的地方在于:

Maria存储引擎PBXT 存储引擎
XtraDB存储引擎
FederatedX存储引擎
更快的复制查询处理
线程池
更少的警告和bug
运行速度更快
更多的 Extensions (More index parts, new startup options etc)
更好的功能测试
数据表消除
慢查询日志的扩展统计
支持对 Unicode 的排序

相对于MySQL最新的版本5.6来说,在性能、功能、管理、NoSQL扩展方面,MariaDB包含了更丰富的特性。比如微秒的支持、线程池、子查询优化、组提交、进度报告等。


推荐阅读
  • Centos下安装memcached+memcached教程
    本文介绍了在Centos下安装memcached和使用memcached的教程,详细解释了memcached的工作原理,包括缓存数据和对象、减少数据库读取次数、提高网站速度等。同时,还对memcached的快速和高效率进行了解释,与传统的文件型数据库相比,memcached作为一个内存型数据库,具有更高的读取速度。 ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
  • hackingTeam是如何被黑的
    hackingTeam是如何被黑的 ... [详细]
  • 目录摘要SQL的现在NoSQL,NotOnlySQL要分布式,也要SQL总结引用摘要毫不夸张的说,关系数据库是企业软件系统的核心,企业形形色色信息行为的背后,都有关系数据库的支撑。 ... [详细]
  • https:github.comguanhui07…自取上传到这里《PHP7内核剖析》深入理解PHP最佳良品《鸟哥的Linux私房菜》可能有点历史久远了,《ModernPHP(中文 ... [详细]
  • MYsql_linux mysql
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了linuxmysql相关的知识,希望对你有一定的参考价值。一数据库安装查看:[[email pr ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • ejava,刘聪dejava
    本文目录一览:1、什么是Java?2、java ... [详细]
  • 像跟踪分布式服务调用那样跟踪Go函数调用链 | Gopher Daily (2020.12.07) ʕ◔ϖ◔ʔ
    每日一谚:“Acacheisjustamemoryleakyouhaven’tmetyet.”—Mr.RogersGo技术专栏“改善Go语⾔编程质量的50个有效实践” ... [详细]
  • 开发笔记:Python之路第一篇:初识Python
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Python之路第一篇:初识Python相关的知识,希望对你有一定的参考价值。Python简介& ... [详细]
  • 在Ubuntu中安装MongoDB
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • mongoDB介绍、安装、搭建简单的mongoDB服务器(一)
    相关网站1. http:www.mongodb.org 官网,可以下载安装程序,和doc,和驱动等。2. http:www.mongoing.com 国内官方网站,博客,问 ... [详细]
  • TcaplusDB搬迁设备的简单介绍
    由于设备升级、机器故障等原因,服务器使用中可能会出现需要搬迁的情况,TcaplusDB可以搬迁存储、接入、Tcapdb设备,操作如下:1.功能入口:2.Tcaplus以下三种进程支 ... [详细]
author-avatar
cathy522_788
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有