技术开发 频道

MySQL数据库存储引擎和分支现状

  [ 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/

0
相关文章