• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL数据库存储引擎和分支现状分析

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了mysql数据库存储引擎,mysql数据库存储图片,mysql数据库存储,mysql数据库存储过程,mysql数据库存储位置等相关知识,希望本文的分享对您有所帮助
MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来。 

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

本文大致讲解一下MySQL目前除了主要的 MyISAM、InnoDB、Heap(Memory)、NDB 等引擎之外的其他引擎的发展和现状,以及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的特点:

◆多版本并发控制,ACID支持

◆通过拷贝日志就能进行增强备份

◆高效的磁盘存储

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.。

按照有人的测试结果来看,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

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
  • 深入理解MySQL的数据库引擎的类型
  • 基于Mysql存储引擎的深入分析
  • 如何选择合适的MySQL存储引擎
  • mysql 查询数据库中的存储过程与函数的语句
  • MySQL数据库存储引擎和分支现状分析
  • MySQL数据库InnoDB引擎主从复制同步经验总结
  • MySQL中使用FREDATED引擎实现跨数据库服务器、跨实例访问
  • MySQL存储引擎总结
  • Mysql存储引擎特性总结

相关文章

  • 2018-12-05MDF文件在SQL Server中的恢复技术
  • 2018-08-22mysql约束
  • 2018-12-05Redis与Memcached有何区别 ?redis和Memcached的区别比较
  • 2018-12-05SQLServer 数据修复命令DBCC一览
  • 2018-12-05Mysql自动备份与还原方法
  • 2018-12-05Linux下MySQL5.7.18二进制包安装教程
  • 2018-12-05详解navicat连接mysql时出现1045错误的解决方案
  • 2018-12-05Oracle 忘记密码的找回方法
  • 2018-12-05SQL Server 服务器优化技巧浅谈
  • 2017-05-11深入Mysql字符集设置[精华结合]

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 使用bin-log日志还原数据库的例子
    • oracle SCN跟TIMESTAMP之间转换
    • 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备
    • mysql数据库如何开启慢查询日志的详情介绍
    • 浅谈mysql数据库中的using的用法
    • MySQL学习笔记5:修改表(alter table)
    • MySQL数据类型中DECIMAL的用法实例详解
    • MySQL出现SQL Error (2013)连接错误的解决方法_MySQL
    • MySQL 数据库 source 命令详解_MsSql
    • mysql 读写分离(基础篇)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有