MySQL数据库存储和分支是怎样的

61次阅读
没有评论

共计 4468 个字符,预计需要花费 12 分钟才能阅读完成。

今天就跟大家聊聊有关 MySQL 数据库存储和分支是怎样的,可能很多人都不太了解,为了让大家更加了解,丸趣 TV 小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

在 MySQL 经历了 2008 年 Sun 的收购和 2009 年 Oracle 收购 Sun 的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL 是肯定会被 Oracle 搁置并且逐步雪藏消灭掉的。MySQL 随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让 MySQL 有希望继续发扬光大起来。

【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 作为内置的存储引擎,所以也是可以尝试使用的一个引擎。

【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 引擎来替换 I

看完上述内容,你们对 MySQL 数据库存储和分支是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注丸趣 TV 行业资讯频道,感谢大家的支持。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-28发表,共计4468字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)