自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL數(shù)據(jù)庫存儲(chǔ)引擎和分支現(xiàn)狀

數(shù)據(jù)庫 MySQL
在MySQL經(jīng)歷了2008年Sun的收購和2009年Oracle收購Sun的過程中,基本處于停滯發(fā)展的情況,在可以預(yù)見的未來,MySQL是肯定會(huì)被Oracle擱置并且逐步雪藏消滅掉的。MySQL隨著相應(yīng)的各主創(chuàng)和內(nèi)部開發(fā)人員的離去,締造了各個(gè)不同的引擎和分支,讓MySQL有希望繼續(xù)發(fā)揚(yáng)光大起來。

在MySQL經(jīng)歷了2008年Sun的收購和2009年Oracle收購Sun的過程中,基本處于停滯發(fā)展的情況,在可以預(yù)見的未來,MySQL是肯定會(huì)被Oracle擱置并且逐步雪藏消滅掉的。MySQL隨著相應(yīng)的各主創(chuàng)和內(nèi)部開發(fā)人員的離去,締造了各個(gè)不同的引擎和分支,讓MySQL有希望繼續(xù)發(fā)揚(yáng)光大起來。

本文大致講解一下MySQL目前除了主要的 MyISAM、InnoDB、Heap(Memory)、NDB 等引擎之外的其他引擎的發(fā)展和現(xiàn)狀,以及MySQL主干以外的分支的狀況,為了我們未來更好的使用MySQL或者其他分支建立一個(gè)了解基礎(chǔ)。

MySQL存儲(chǔ)引擎介紹

Falcon存儲(chǔ)引擎

Falcon存儲(chǔ)引擎是MySQL當(dāng)時(shí)寄以厚望的存儲(chǔ)引擎,主要是為了面對(duì)當(dāng)時(shí)Oracle收購了InnoBase公司的情況,用來取代InnoDB的一個(gè)存儲(chǔ)引擎。Falcon引擎的主導(dǎo)人員是大師Jim Starkey,從2006年開始開發(fā),到2008年發(fā)布Beta版本,至今為止也沒有走入主流。2008年中旬,F(xiàn)alcon的主架構(gòu)師Jim Starkey宣布從MySQL公司辭職,加入了一家創(chuàng)業(yè)公司NimbusDB擔(dān)任CEO,去設(shè)計(jì)和開發(fā)運(yùn)行在云計(jì)算上面的關(guān)系/語義數(shù)據(jù)庫,按照2010年目前NoSQL市場(chǎng)的發(fā)展來看,他的選擇是正確的,但是帶來的結(jié)果是Falcon陷入一個(gè)沒有主導(dǎo)人員的地步,導(dǎo)致了至今都屬于性能糟糕,半死不活的狀態(tài)。

Falcon引擎是MySQL AB公司基于Netfrastrucure公司的產(chǎn)品開發(fā)的(Netfrastrucure公司被MySQL AB收購),F(xiàn)alcon 當(dāng)初的目標(biāo)是嵌入到MySQL 6.0中用來取代InnoDB引擎,基本很多功能設(shè)計(jì)都是按照InnoDB的目標(biāo)去設(shè)計(jì)的。

Falcon是面向多CPU、擁有大量?jī)?nèi)存的當(dāng)代硬件環(huán)境和典型Web應(yīng)用的 數(shù)據(jù)庫操作特點(diǎn)而開發(fā)的,主要功能包括多版本并發(fā)控制、完善的ACID支持、支持前綴壓縮的B+樹索引、數(shù)據(jù)頁壓縮(在磁盤上以壓縮形式存儲(chǔ),在內(nèi)存中以 非壓縮形式存儲(chǔ))、成組提交等。從功能方面來說沒有什么新鮮事,大體也就實(shí)現(xiàn)了一個(gè)事務(wù)型存儲(chǔ)引擎必須要有的功能(很多高級(jí)的功能如多表空間、分區(qū)等都還 沒有),但其架構(gòu)上卻有很多獨(dú)特之處。

通過網(wǎng)上的一些測(cè)試結(jié)果Falcon的性能還是很糟糕的,寫入速度是 MyISAM 的 1/10 ~ 1/20,Select 的優(yōu)化也有問題,添加了索引感覺還會(huì)進(jìn)行全表掃描。所以,我終究感覺 Falcon 是個(gè)杯具的引擎。

Falcon特性:http://dev.mysql.com/doc/falcon/en/se-falcon-features.html

Falcon測(cè)試:http://blog.gslin.org/archives/2008/02/12/1425/

Falcon手冊(cè):http://dev.mysql.com/doc/falcon/en/

SolidDB存儲(chǔ)引擎

SolidDB存儲(chǔ)引擎是由Solid Information Technology(http://www.SolidDB.com) 開發(fā)的,這是一款利用MVCC來實(shí)現(xiàn)的事務(wù)型存儲(chǔ)引擎。它既同時(shí)支持悲觀和樂觀并發(fā)控制,這一點(diǎn)其他的存儲(chǔ)引擎目前都不支持。solibDB的MySQL 版本包括對(duì)外鍵的完全支持。它在許多方面與InnoDB很相似,比如它使用了簇索引。SolidDB還包括一個(gè)沒有額外開銷的在線備份功能。

SolidDB公司已經(jīng)由2008年被IBM收購,主要是用于整合為IBM數(shù)據(jù)庫整合方案的一部分,目前是作為一個(gè)前端數(shù)據(jù)緩存的這么一個(gè)角色存在。IBM收購SolidDB公司,主要是因?yàn)榧坠俏脑?005年6月收購了Solid Information Technology主要競(jìng)爭(zhēng)對(duì)手TimesTen,為了在內(nèi)存數(shù)據(jù)庫這塊市場(chǎng)上有所依托,所以收購了 SolidDB公司。

SolidDB產(chǎn)品是一個(gè)完整的打包程序,包括SolidDB存儲(chǔ)引擎、MyISAM存儲(chǔ)引擎以及MySQL服務(wù)器。SolidDB與MySQL之間的結(jié)合出現(xiàn)于2006年的晚些時(shí)候。但是底層的技術(shù)以及代碼卻是經(jīng)過了該公司15年的完善。Solid公司保證和支持了整個(gè)產(chǎn)品。它是基于GPL協(xié)議的,并且提供了一個(gè)類似于MySQL服務(wù)器形式的商業(yè)版本。

性能上來說,SolidDB for MySQL開源數(shù)據(jù)庫再次被證明能夠完全滿足高吞吐量、關(guān)鍵任務(wù)級(jí)應(yīng)用對(duì)系統(tǒng)性能和可擴(kuò)展性的要求。

但是就 SolidDB被IBM收購,MySQL對(duì)Oracle收購的情況來看,基本上 SolidDB for MySQL 是一個(gè)沒法繼續(xù)被MySQL使用的引擎,所以也是一個(gè)杯具的MySQL引擎。

官方網(wǎng)站:http://www.ibm.com/software/data/SolidDB/

XtraDB存儲(chǔ)引擎

XtraDB存儲(chǔ)引擎是percona公司對(duì)于innodb存儲(chǔ)引擎進(jìn)行改進(jìn)加強(qiáng)后的產(chǎn)品,第一個(gè)版本發(fā)布于2008年底。XtraDB兼容innodb的所有特性,并且在IO性能,鎖性能,內(nèi)存管理等多個(gè)方面進(jìn)行了增強(qiáng)。

Percona是一個(gè)MySQL技術(shù)咨詢公司,他們有一個(gè)在MySQL領(lǐng)域很有名的技術(shù)博客叫做 Mysql Performance Blog,同時(shí)他們編寫了一本很有名的MySQL書叫做《High Performance MySQL》,目前也出版了中文版。他們公司還有一個(gè)很有名的MySQL備份工具叫做 XtraBackup。

XtraDB的設(shè)計(jì)目標(biāo)也是取代InnoDB作為目標(biāo),它是基于InnoDB來做的開發(fā),XtraDB 100%的兼容 InnoDB,通??梢哉J(rèn)為 XtraDB 是 InnoDB的升級(jí)或者替代版本。在性能上來說,目前 XtraDB 是非常高的,在大部分情況下也是比較穩(wěn)定的,值得你嘗試使用。同樣XtraDB也是未來感覺很有前途的一個(gè)存儲(chǔ)引擎,值得我們期待。

性能測(cè)試: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/

公司官網(wǎng):http://www.percona.com

性能博客:http://www.mysqlperformanceblog.com

Maria存儲(chǔ)引擎

Maria由MySQL的創(chuàng)始人,MyISAM的作者M(jìn)onty (Michael Widenius) 開發(fā),命名為Maria是因?yàn)樗牡谌齻€(gè)小孩就叫Maria。Maria是Monty在MySQL公司的時(shí)候就開始開發(fā)的一個(gè)MySQL的分支引 擎,Sun收購MySQL后,因?yàn)榕cSun針對(duì)MySQL團(tuán)隊(duì)的一些問題不和,然后在2009年初離開了Sun,成立了 Monty Program Ab 公司,專門用于針對(duì) Maria 引擎的開發(fā),同時(shí)開發(fā)了一個(gè)MySQL的分支,叫做 MariaDB。

Maria是一個(gè)MySQL的存儲(chǔ)引擎,利用它來擴(kuò)展MyISAM使之在異常退出時(shí)文件不至于損壞。Maria的主要目的是作為更好的 MyISAM,提供崩潰后的故障恢復(fù)功能。更長(zhǎng)遠(yuǎn)的目標(biāo)是成為一個(gè)全功能的事務(wù)型存儲(chǔ)引擎,支持ACID、回滾、多版本并發(fā)控制、行級(jí)鎖、成組提交,同時(shí) 也可以選擇不支持事務(wù),最終代替MyISAM成為MySQL的默認(rèn)存儲(chǔ)引擎。

目前Maria引擎有針對(duì)MySQL 5.1 的版本,基本上就是一個(gè)增加了崩潰恢復(fù)功能的MyISAM,使用表級(jí)鎖,但可以做到讀寫不沖突,即在進(jìn)行任何類型的更新操作的同時(shí)都可以進(jìn)行讀操作,但多個(gè)寫操作不能并發(fā)。

Maria的特點(diǎn):

◆多版本并發(fā)控制,ACID支持

◆通過拷貝日志就能進(jìn)行增強(qiáng)備份

◆高效的磁盤存儲(chǔ)

Maria 引擎開發(fā)之初就是用來取代MyISAM的存儲(chǔ)引擎,并且目前按照我了解有些在使用公司的情況,運(yùn)行情況挺不錯(cuò),大家也可以嘗試一下。Maria 在目前有MySQL創(chuàng)始人帶領(lǐng)的情況下,也是一個(gè)非常有前途的的存儲(chǔ)引擎,值得期待。

Maria下載:http://askmonty.org/wiki/MariaDB:Download

Maria手冊(cè):http://askmonty.org/wiki/Maria

PrimeBase XT (PBXT) 存儲(chǔ)引擎

PBXT 是 PrimeBase 公司推出的MySQL插件引擎,其功能和 InnoDB 類似,它是一款事務(wù)型存儲(chǔ)引擎,并且它的設(shè)計(jì)是很獨(dú)特的。它的一個(gè)很與眾不同的特征就是如何來使用事務(wù)日志和數(shù)據(jù)文件來防止“write-ahead”日 志,這可以極大的減少事務(wù)提交的開銷。這個(gè)架構(gòu)給了PBXT很大的提高寫并發(fā)的空間,并且測(cè)試也表明它在某些特定的操作下比InnoDB要快。PBXT也 使用了MVCC并且支持外鍵約束,但是它不使用簇索引。

主要特性如下:

◆MVCC的 :多版本并發(fā)控制,使讀操作沒有鎖定

◆事務(wù)性 :支持啟動(dòng)開始,COMMIT和ROLLBACK和恢復(fù)上

◆ACID標(biāo)準(zhǔn) :原子性,一致性,隔離,持久(一次提交的更改不能丟失)

◆行級(jí)鎖定 :更新使用行級(jí)鎖的并發(fā)允許最大并發(fā)量

◆死鎖檢測(cè) :立即通知如果客戶端進(jìn)程已陷入死鎖

◆參照完整性 :外鍵的支持。

◆寫一次 :PBXT避免的架構(gòu)雙寫入使用日志。

◆BLOB的流 :在結(jié)合的 BLOB Streaming engine.。

按照有人的測(cè)試結(jié)果來看,PBXT存儲(chǔ)引擎版本的TPS隨著線程數(shù)的增長(zhǎng),表現(xiàn)比較穩(wěn)定,性能上與innodb差不多,長(zhǎng)期來看,它的目標(biāo)也是作為 一個(gè)能夠取代InnoDB的存儲(chǔ)引擎。而且目前 MariaDB 這個(gè)分支已經(jīng)把 PBXT 作為內(nèi)置的存儲(chǔ)引擎,所以也是可以嘗試使用的一個(gè)引擎。

性能測(cè)試:http://imysql.cn/2008_07_25_innodb_vs_pbxt

引擎下載:http://www.primebase.org/download/index.php

官方網(wǎng)站:http://www.primebase.org/

MySQL分支介紹

MariaDB 數(shù)據(jù)庫

MariaDB 是一個(gè)采用 Maria 存儲(chǔ)引擎的 MySQL 分支版本,是由原來 MySQL 的作者 Michael Widenius (Monty) 創(chuàng)辦的Monty Program Ab公司所開發(fā)的免費(fèi)開源的數(shù)據(jù)庫服務(wù)器?;旧?MariaDB 的歷史跟我上面講的 Maria 存儲(chǔ)引擎歷史一樣。MariaDB的設(shè)計(jì)目標(biāo)就是用來取代 MySQL Server。Monty是開源數(shù)據(jù)庫聯(lián)盟(Open Database Alliance)的發(fā)起者,所以 MariaDB 也是開源數(shù)據(jù)庫聯(lián)盟的成員。

MariaDB基于事務(wù)的Maria存儲(chǔ)引擎,替換了MySQL的MyISAM存儲(chǔ)引擎,它使用了Percona的 XtraDB引擎來替換InnoDB,MariaDB的存儲(chǔ)引擎還包括了 PrimeBase XT (PBXT) 和 FederatedX 存儲(chǔ)引擎,MariaDB基于GPL 2.0發(fā)布。

Monty Widenius提供了MySQL的分支MariaDB候選版本。MariaDB 5.1完全兼容MySQL 5.1,這個(gè)版本早在2008年11月就發(fā)布了,增加了很多新的功能和若干個(gè)新的補(bǔ)丁程序。開發(fā)者稱這個(gè)候選版本非常穩(wěn)定?;旧?MySQL,MariaDB 解決了很多問題,例如“pool of threads”功能提供解決多數(shù)據(jù)連接問題。目前 MariaDB 發(fā)布的Release版本是 5.1.44,基本上應(yīng)該是跟 MySQL 5.1 的版本兼容的。

MariaDB 基本上名門之后,加上MySQL創(chuàng)始人Monty的實(shí)力和號(hào)召力,是作為MySQL一個(gè)非常好的替代品,前途發(fā)展無限,值得我們嘗試使用。

MariaDB中存儲(chǔ)引擎介紹:

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網(wǎng)站:http://askmonty.org

[ Drizzle 數(shù)據(jù)庫]

Drizzle,是從MySQL衍生出來的一個(gè)數(shù)據(jù)庫服務(wù)器,一個(gè)精簡(jiǎn)版的MySQL分支,Drizzle項(xiàng)目的宗旨是構(gòu)建一個(gè)“更精練、更輕量、更快 速”的MySQL版本,它的擴(kuò)展性和易用性與MySQL相當(dāng),但為了提高性能和擴(kuò)展性,它從原來的核心系統(tǒng)里移除了部分功能。 Drizzle 也是開源數(shù)據(jù)庫聯(lián)盟(Open Database Alliance)成員。

MySql的架構(gòu)設(shè)計(jì)總監(jiān)Brian Aker在O’Reilly開放源碼大會(huì)(OSCON)上對(duì)Drizzle做了介紹。Drizzle是一個(gè)能為某些特定類別的應(yīng)用提供支持的數(shù)據(jù)庫項(xiàng)目(“what if” project)。Drizzle的設(shè)計(jì)目標(biāo):

  1. Web應(yīng)用。
  2. 云計(jì)算組件。
  3. 沒有業(yè)務(wù)邏輯的數(shù)據(jù)庫(又名存儲(chǔ)過程)。
  4. 多核架構(gòu)。

Drizzle,一個(gè)精簡(jiǎn)版的MySQL分支,在目前的MySQL代碼基本之上,將存儲(chǔ)過程、視圖、觸發(fā)器、查詢緩存、PREPARE語句等等沒什 么必要 的功能從代碼中刪掉,簡(jiǎn)化對(duì)數(shù)據(jù)類型和存儲(chǔ)引擎的支持,并且進(jìn)行大膽的重構(gòu)。最終要實(shí)現(xiàn)的目的是將MySQL的代碼大大簡(jiǎn)化,理順MySQL的架構(gòu),改善 MySQL的代碼質(zhì)量,提高系統(tǒng)的穩(wěn)定性和性能。將更適合 Web應(yīng)用、云計(jì)算組件、沒有業(yè)務(wù)邏輯的數(shù)據(jù)庫(又名存儲(chǔ)過程)、多核架構(gòu) 等業(yè)務(wù)

Drizzle的特征有:

1. 基于MySQL 6.0的源碼樹

2. 無附加庫

3. 遵守POSIX

4. 微內(nèi)核設(shè)計(jì)

5. 可插拔架構(gòu),適用于視圖、存儲(chǔ)過程、UDF、存儲(chǔ)引擎等

6. 跨多個(gè)節(jié)點(diǎn)的Sharding技術(shù)

7. 智能代理

8. 多CPU/多核CPU

9. 優(yōu)化的字段類型

10. 高效的內(nèi)存使用

11. 沒有內(nèi)部ACL,使用LDAP/PAM

12. 沒有數(shù)據(jù)庫數(shù)據(jù)格式化

13. 整理有序的Make系統(tǒng)

14. 缺省存儲(chǔ)引擎為InnoDB

15. 移除Windows兼容性

Drizzle 缺省的存儲(chǔ)引擎是InnoDB,支持的數(shù)據(jù)類型更少,基本上設(shè)計(jì)目標(biāo)跟 MariaDB 完全不同。MariaDB的設(shè)計(jì)目標(biāo)是一個(gè)取代MySQL的數(shù)據(jù)庫,而 Drizzle 基本上是一個(gè)除了MySQL之外你可以選擇的產(chǎn)品,并且基本上設(shè)計(jì)目標(biāo)是針對(duì)未來的云計(jì)算和分布式Web存儲(chǔ)的方向去的,目前可能不是太穩(wěn)定,不適合在運(yùn) 營環(huán)境使用,但是相當(dāng)?shù)闹档闷诖?/P>

Drizzle使用:http://database.51cto.com/art/200907/137239.htm

Drizzle下載:https://launchpad.net/drizzle

Drizzle網(wǎng)站:http://drizzle.org/

總結(jié)語

基本上來說,目前MySQL還是主流(MyISAM/InnoDB),但是未來發(fā)展不可預(yù)測(cè),并且有這些除了MySQL之外的選擇,也許有一天Oracle把MySQL徹底消滅掉了,但是我們同樣還有 MariaDB、Drizzle可以選擇,這就是開源的力量。

對(duì)比幾個(gè)MySQL的存儲(chǔ)引擎,Maria 和 XtraDB 是值得大家目前投入逐步使用的行列的,多做一些測(cè)試,灰度放亮,獲得一個(gè)合理結(jié)果然后再使用是比較合適的。MySQL的數(shù)據(jù)庫分支來說,MariaDB 也是比較值得嘗試使用的,畢竟目前 Drizzle 還不是太成熟穩(wěn)定,并且不一定適合你所做的業(yè)務(wù)。我所了解國內(nèi)部分互聯(lián)網(wǎng)公司也有在使用 MariaDB 的,并且效果不錯(cuò),大家也都可以按照自己的情況來使用。

目前NoSQL運(yùn)動(dòng)如火如荼,有些業(yè)務(wù)更適合采用Key==>Value或這是BigTable類型的數(shù)據(jù)存儲(chǔ)方式,也許MySQL不是最好 的,當(dāng)然選擇最合適存儲(chǔ),也許未來大部分?jǐn)?shù)據(jù)庫市場(chǎng)會(huì)被NoSQL所占領(lǐng),但是我覺得關(guān)系型數(shù)據(jù)庫還是未來幾年很重要的存儲(chǔ)方式。

在MySQL被Sun收購,已經(jīng)Sun被Oracle收購的過程中,整個(gè)開源世界都是在翻天覆地的變化,特別是MySQL的命運(yùn)一直都是所有使用和 熱愛開源數(shù)據(jù)庫的人們所關(guān)注的,在這些商業(yè)競(jìng)爭(zhēng)中,那些開源斗士(比如 Monty),都通過別的方式,繼續(xù)發(fā)揚(yáng)了MySQL這種開源數(shù)據(jù)庫。我們長(zhǎng)期來看,總會(huì)有一些東西會(huì)消失,比如 Falcon存儲(chǔ)引擎,有些東西會(huì)繼續(xù)發(fā)展,比如 MariaDB或Drizzle,但是這些都為開源技術(shù)做出了貢獻(xiàn),也為數(shù)據(jù)庫領(lǐng)域增添了色彩。

原文鏈接:http://www.oschina.net/news/15891/MySQL-Storage-Engine-Analysis

【責(zé)任編輯:艾婧 TEL:(010)68476606】
責(zé)任編輯:艾婧 來源: 開源中國社區(qū)
相關(guān)推薦

2011-03-02 12:57:08

MySQL存儲(chǔ)引擎分支現(xiàn)狀

2010-05-14 17:44:47

MySQL數(shù)據(jù)庫

2011-08-16 16:22:38

MySQL數(shù)據(jù)庫存儲(chǔ)引擎MyISAM

2018-05-14 10:56:36

MySQL數(shù)據(jù)庫存儲(chǔ)

2022-08-10 14:03:01

MySQL數(shù)據(jù)庫存儲(chǔ)

2017-09-03 15:41:31

數(shù)據(jù)庫存儲(chǔ)分布式

2024-06-03 08:29:20

2022-09-16 11:33:24

數(shù)據(jù)庫關(guān)系

2011-02-25 17:47:44

數(shù)據(jù)庫存儲(chǔ)編寫

2011-08-01 23:08:33

MySQL存儲(chǔ)引擎

2023-01-18 08:25:23

數(shù)據(jù)庫存儲(chǔ)類型

2009-05-27 11:01:29

UbuntuMySQL存儲(chǔ)

2011-05-17 15:30:27

Oracle數(shù)據(jù)庫ADO

2011-08-15 15:14:54

SQL Server存儲(chǔ)過程異常處理

2011-08-05 14:31:04

mysql_conve批量轉(zhuǎn)換MYSQL數(shù)據(jù)MYISAM

2018-04-23 09:25:24

MySQL結(jié)構(gòu)存儲(chǔ)

2024-05-20 10:20:37

數(shù)據(jù)庫存儲(chǔ)容量

2018-06-14 15:05:22

數(shù)據(jù)庫MySQL存儲(chǔ)引擎

2019-07-23 15:34:29

MySQL存儲(chǔ)引擎
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)