共計 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 行業資訊頻道,感謝大家的支持。