<b>MySQL 数据库存储和分支</b>[MySQL防范]
本文“<b>MySQL 数据库存储和分支</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
在MySQL阅历了2008年Sun的收购和2009年Oracle收购Sun的历程中,基本处于阻滞发展的情形,在可以预见的将来,MySQL是必定会被Oracle放置并且渐渐雪藏清除掉的.MySQL随着呼应的各主创和内部开辟人员的拜别,创造了各个差别的引擎和分支,让MySQL有但愿持续发扬光大起来.
本文大致讲授一下MySQL目前除了主要的 MyISAM、InnoDB、Heap(Memory)、NDB 等引擎之外的其他引擎的发展和近况,以及MySQL骨干以外的分支的情况,为了我们将来更好的利用MySQL大概其他分支成立一个理解底子.
要理解主要存储引擎,请参考手册:http://dev.mysql.com/doc/refman/5.1/zh/index.html
【MySQL存储引擎介绍】
[ Falcon存储引擎 ]
Falcon存储引擎是MySQL当时寄以厚望的存储引擎,主如果为了面对当时Oracle收购了InnoBase公司的情形,用来代替InnoDB的一个存储引擎.Falcon引擎的主导人员是大师Jim Starkey,从2006年开始开辟,到2008年公布Beta版本,至今为止也没有走入主流.2008年中旬,Falcon的主架构师Jim Starkey公布从MySQL公司辞职,加入了一家创业公司NimbusDB担当CEO,去计划和开辟运行在云计算上面的关系/语义数据库,按照2010年目前NoSQL市场的发展来看,他的挑选是精确的,但是带来的后果是Falcon陷入一个没有主导人员的地步,招致了至今都属于性能糟糕,半死不活的状况.
Falcon引擎是MySQL AB公司基于Netfrastrucure公司的产品开辟的(Netfrastrucure公司被MySQL AB收购),Falcon 当初的目标是嵌入到MySQL 6.0顶用来代替InnoDB引擎,基本很多功效计划都是按照InnoDB的目标去计划的.
Falcon是面向多CPU、拥有大量内存的现代硬件环境和典型Web利用的 数据库操作特点而开辟的,主要功效包含多版本并发掌握、完善的ACID支持、支持前缀紧缩的B+树索引、数据页紧缩(在磁盘上以紧缩情势存储,在内存中以 非紧缩情势存储)、成组提交等.从功效方面来说没有什么新颖事,大体也就实现了一个事件型存储引擎必必要有的功效(很多高级的功效如多表空间、分区等都还 没有),但其架构上却有很多独特之处.
通过网上的一些测试后果Falcon的性能还是很糟糕的,写入速度是 MyISAM 的 1/10 ~ 1/20,Select 的优化也有问题,增添了索引感受还会举行全表扫描.所以,我毕竟感受 Falcon 是个杯具的引擎.
Falcon特点:http://dev.mysql.com/doc/falcon/en/se-falcon-features.html
Falcon测试:http://blog.gslin.org/archives/2008/02/12/1425/
Falcon手册:http://dev.mysql.com/doc/falcon/en/
数据库
[ SolidDB存储引擎]
solidDB存储引擎是由Solid Information Technology(http://www.soliddb.com) 开辟的,这是一款操纵MVCC来实现的事件型存储引擎.它既同时支持悲观和乐观并发掌握,这一点其他的存储引擎目前都不支持.solibDB的MySQL 版本包含对外键的完好支持.它在很多方面与InnoDB很类似,比方它利用了簇索引.solidDB还包含一个没有额外开销的在线备份功效.
solidDB公司已经过2008年被IBM收购,主如果用于整合为IBM数据库整合筹划的一部份,目前是作为一个前端数据缓存的这么一个角色存在.IBM收购solidDB公司,主如果因为甲骨文在2005年6月收购了Solid Information Technology主要竞争对手TimesTen,为了在内存数据库这块市场上有所依托,所以收购了 solidDB公司.
solidDB产品是一个完好的打包程序,包含solidDB存储引擎、MyISAM存储引擎以及MySQL服务器.solidDB与MySQL之间的结合呈现于2006年的晚些时刻.但是底层的技术以及代码倒是经过了该公司15年的完善.Solid公司保证和支持了整个产品.它是基于GPL协议的,并且供应了一个近似于MySQL服务器情势的商业版本.
性能上来说,SolidDB for MySQL开源数据库再次被证明可以完好满意高吞吐量、关键任务级利用对系统性能和可扩大性的要求.
但是就 solidDB被IBM收购,MySQL对Oracle收购的情形来看,基本上 solidDB for MySQL 是一个没法持续被MySQL利用的引擎,所以也是一个杯具的MySQL引擎.
官方网站:http://www.ibm.com/software/data/soliddb/
[ XtraDB存储引擎 ]
XtraDB存储引擎是percona公司关于innodb存储引擎举行改良加强后的产品,第一个版本公布于2008年底.XtraDB兼容innodb的全部特点,并且在IO性能,锁性能,内存管理等多个方面举行了加强.
Percona是一个MySQL技术咨询公司,他们有一个在MySQL范畴很闻名的技术博客叫做 Mysql Performance Blog,同时他们编写了一本很闻名的MySQL书叫做《High Performance MySQL》,目前也出版了中文版.他们公司还有一个很闻名的MySQL备份工具叫做 XtraBackup.
XtraDB的计划目标也是代替InnoDB作为目标,它是基于InnoDB来做的开辟,XtraDB 100%的兼容 InnoDB,普通可以认为 XtraDB 是 InnoDB的进级大概替换版本.在性能上来说,目前 XtraDB 是非常高的,在大部份情形下也是对比安定的,值得你尝试利用.一样XtraDB也是将来感受很有前途的一个存储引擎,值得我们等待.
性能测试:http://www.mysqlperformanceblog.com/2009/07/14/performance-improvements-in-percona-5-0-83-and-xtradb/
利用情形:http://www.ningoo.net/html/2009/xtradb_storage_engine.html
引擎介绍:http://www.percona.com/docs/wiki/percona-xtradb:start
引擎下载:http://www.percona.com/percona-builds/Percona-XtraDB/
公司官网:http://www.percona.com
性能博客:http://www.mysqlperformanceblog.com
[ Maria存储引擎 ]
Maria由MySQL的创始人,MyISAM的作者Monty (Michael Widenius) 开辟,命名为Maria是因为他的第三个小孩就叫Maria.Maria是Monty在MySQL公司的时刻就开始开辟的一个MySQL的分支引 擎,Sun收购MySQL后,因为与Sun针对MySQL团队的一些问题不和,然后在2009年初脱离了Sun,成立了 Monty Program Ab 公司,专门用于针对 Maria 引擎的开辟,同时开辟了一个MySQL的分支,叫做 MariaDB.
Maria是一个MySQL的存储引擎,操纵它来扩大MyISAM使之在非常退出时文件不至于破坏.Maria的主要目的是作为更好的 MyISAM,供应崩溃后的弊端恢复功效.更长远的目标是成为一个全功效的事件型存储引擎,支持ACID、回滚、多版本并发掌握、行级锁、成组提交,同时 也可以挑选不支持事件,终究替换MyISAM成为MySQL的默许存储引擎.
目前Maria引擎有针对MySQL 5.1 的版本,基本上就是一个增添了崩溃恢复功效的MyISAM,利用表级锁,但可以做到读写不冲突,即在举行任何范例的更新操作的同时都可以举行读操作,但多个写操作不能并发.
Maria的特点:
1. 多版本并发掌握,ACID支持
2. 通过拷贝日记就可以举行加强备份
3. 高效的磁盘存储
Maria 引擎开辟之初就是用来代替MyISAM的存储引擎,并且目前按照我理解有些在利用公司的情形,运行情形挺不错,大家也可以尝试一下.Maria 在目前有MySQL创始人带领的情形下,也是一个非常有前途的的存储引擎,值得等待.
Maria下载:http://askmonty.org/wiki/MariaDB:Download
Maria手册:http://askmonty.org/wiki/Maria
[PrimeBase XT (PBXT) 存储引擎 ]
PBXT 是 PrimeBase 公司推出的MySQL插件引擎,其功效和 InnoDB 近似,它是一款事件型存储引擎,并且它的计划是很独特的.它的一个很与众差别的特点就是若何来利用事件日记和数据文件来避免“write-ahead”日 志,这可以极大的削减事件提交的开销.这个架构给了PBXT很大的提高写并发的空间,并且测试也表明它在某些特定的操作下比InnoDB要快.PBXT也 利用了MVCC并且支持外键约束,但是它不利用簇索引.
主要特点以下:
MVCC的 :多版本并发掌握,使读操作没有锁定
事件性 :支持启动开始,COMMIT和ROLLBACK和恢复上
ACID尺度 :原子性,一致性,断绝,长期(一次提交的更改不能丧失)
行级锁定 :更新利用行级锁的并发答应最大并发量
死锁检测 :当即告诉假如客户端进程已陷入死锁
参照完好性 :外键的支持.
写一次 :PBXT避免的架构双写入利用日记.
BLOB的流 :在结合的 BLOB Streaming engine.. (http://www.blobstreaming.org/)
按照有人的测试后果来看,PBXT存储引擎版本的TPS随着线程数的增长,表现对比安定,性能上与innodb差不多,长期来看,它的目标也是作为 一个可以代替InnoDB的存储引擎.并且目前 MariaDB 这个分支已经把 PBXT 作为内置的存储引擎,所以也是可以尝试利用的一个引擎.
性能测试:http://imysql.cn/2008_07_25_innodb_vs_pbxt
引擎下载:http://www.primebase.org/download/index.php
官方网站:http://www.primebase.org/
【MySQL分支介绍】
[ MariaDB 数据库]
MariaDB 是一个采取 Maria 存储引擎的 MySQL 分支版本,是由本来 MySQL 的作者 Michael Widenius (Monty) 创办的Monty Program Ab公司所开辟的免费开源的数据库服务器.基本上 MariaDB 的历史跟我上面讲的 Maria 存储引擎历史一样.MariaDB的计划目标就是用来代替 MySQL Server.Monty是开源数据库同盟(Open Database Alliance)的发动者,所以 MariaDB 也是开源数据库同盟的成员.
MariaDB基于事件的Maria存储引擎,替换了MySQL的MyISAM存储引擎,它利用了Percona的 XtraDB引擎来替换InnoDB,MariaDB的存储引擎还包含了 PrimeBase XT (PBXT) 和 FederatedX 存储引擎,MariaDB基于GPL 2.0公布.
Monty Widenius供应了MySQL的分支MariaDB候选版本.MariaDB 5.1完好兼容MySQL 5.1,这个版本早在2008年11月就公布了,增添了很多新的功效和若干个新的补钉程序.开辟者称这个候选版本非常安定.基本上 MySQL,MariaDB 办理了很多问题,比方“pool of threads”功效供应办理大都据衔接问题.目前 MariaDB 公布的Release版本是 5.1.44,基本上应当是跟 MySQL 5.1 的版本兼容的.
MariaDB 基本上名门之后,加上MySQL创始人Monty的实力和号令力,是作为MySQL一个非常好的替换品,前途发展无限,值得我们尝试利用.
MariaDB中存储引擎介绍:
Maria: http://askmonty.org/wiki/Maria
XtraDB:http://www.percona.com/docs/wiki/percona-xtradb:start
PBXT: http://www.primebase.org/
FederatedX:https://launchpad.net/federatedx
MariaDB下载:http://askmonty.org/wiki/MariaDB:Download
MariaDB网站:http://askmonty.org
[ Drizzle 数据库]
Drizzle,是从MySQL衍生出来的一个数据库服务器,一个精简版的MySQL分支,Drizzle项目的目标是构建一个“更精练、更轻量、更快 速”的MySQL版本,它的扩大性和易用性与MySQL相当,但为了提高性能和扩大性,它从本来的核心系统里移除了部份功效. Drizzle 也是开源数据库同盟(Open Database Alliance)成员.
MySql的架构计划总监Brian Aker在O’Reilly开放源码大会(OSCON)上对Drizzle做了介绍.Drizzle是一个能为某些特定类别的利用供应支持的数据库项目(“what if” project).Drizzle的计划目标:
1. Web利用.
2. 云计算组件.
3. 没有业务逻辑的数据库(又名存储历程).
4. 多核架构.
Drizzle,一个精简版的MySQL分支,在目前的MySQL代码基本之上,将存储历程、视图、触发器、查询缓存、PREPARE语句等等没什 么必要 的功效从代码中删掉,简化对数据范例和存储引擎的支持,并且举行斗胆的重构.终究要实现的目的是将MySQL的代码大大简化,理顺MySQL的架构,改进 MySQL的代码质量,提高系统的安定性和性能.将更合适 Web利用、云计算组件、没有业务逻辑的数据库(又名存储历程)、多核架构 等业务
Drizzle的特点有:
* 基于MySQL 6.0的源码树
* 无附加库
* 服从POSIX
* 微内核计划
* 可插拔架构,实用于视图、存储历程、UDF、存储引擎等
* 跨多个节点的Sharding技术
* 智能代理
* 多CPU/多核CPU
* 优化的字段范例
* 高效的内存利用
* 没有内部ACL,利用LDAP/PAM
* 没有数据库数据格局化
* 整理有序的Make系统
* 缺省存储引擎为InnoDB
* 移除Windows兼容性
Drizzle 缺省的存储引擎是InnoDB,支持的数据范例更少,基本上计划目标跟 MariaDB 完好差别.MariaDB的计划目标是一个代替MySQL的数据库,而 Drizzle 基本上是一个除了MySQL之外你可以挑选的产品,并且基本上计划目标是针对将来的云计算和分布式Web存储的方向去的,目前大概不是太安定,不合适在运 营环境利用,但是相当的值得等待.
Drizzle利用:http://database.51cto.com/art/200907/137239.htm
Drizzle下载:https://launchpad.net/drizzle
Drizzle网站:http://drizzle.org/【总结语】基本上来说,目前MySQL还是主流(MyISAM/InnoDB),但是将来发展不可猜测,并且有这些除了MySQL之外的挑选,大概有一天Oracle把MySQL完好清除掉了,但是我们一样还有 MariaDB、Drizzle可以挑选,这就是开源的力气.
比较几个MySQL的存储引擎,Maria 和 XtraDB 是值得大家目前投入渐渐利用的行列的,多做一些测试,灰度放亮,得到一个公道结公然后再利用是对比符合的.MySQL的数据库分支来说,MariaDB 也是对比值得尝试利用的,毕竟目前 Drizzle 还不是太成熟安定,并且不一定合适你所做的业务.我所理解国内部份互联网公司也有在利用 MariaDB 的,并且效果不错,大家也都可以按照自己的情形来利用.
目前NoSQL运动如火如荼,有些业务更合适采取Key==>Value或这是BigTable范例的数据存储方法,大概MySQL不是最好 的,当然挑选最符合存储,大概将来大部份数据库市场会被NoSQL所占据,但是我认为关系型数据库还是将来几年很重要的存储方法.
在MySQL被Sun收购,已经Sun被Oracle收购的历程中,整个开源世界都是在翻江倒海的改变,分外是MySQL的命运一向都是全部利用和 酷爱开源数据库的人们所关注的,在这些商业竞争中,那些开源斗士(比方 Monty),都通过别的方法,持续发扬了MySQL这种开源数据库.我们长期来看,总会有一些东西会消逝,比方 Falcon存储引擎,有些东西会持续发展,比方 MariaDB或Drizzle,但是这些都为开源技术做出了奉献,也为数据库范畴增添了色彩.
本文地址: | 与您的QQ/BBS好友分享! |