程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL數據庫存儲引擎和分支近況剖析

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 Widenius供給了MySQL的分支MariaDB候選版本。MariaDB 5.1完整兼容MySQL 5.1,這個版本早在2008年11月就宣布了,增長了許多新的功效和若干個新的補釘法式。開辟者稱這個候選版本異常穩固。根本上 MySQL,MariaDB 處理了許多成績,例如“pool of threads”功效供給處理多半據銜接成績。今朝 MariaDB 宣布的Release版本是 5.1.44,根本上應當是跟 MySQL 5.1 的版本兼容的。

MariaDB 根本上名門以後,加上MySQL開創人Monty的實力和號令力,是作為MySQL一個異常好的替換品,前程成長無窮,值得我們測驗考試應用。

MariaDB中存儲引擎引見:

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網站:http://askmonty.org

[ Drizzle 數據庫]

Drizzle,是從MySQL衍生出來的一個數據庫辦事器,一個精簡版的MySQL分支,Drizzle項目標主旨是構建一個“更精練、更輕量、更快 速”的MySQL版本,它的擴大性和易用性與MySQL相當,但為了進步機能和擴大性,它從本來的焦點體系裡移除部門功效。 Drizzle 也是開源數據庫同盟(Open Database Alliance)成員。

MySql的架構設計總監Brian Aker在O'Reilly開放源碼年夜會(OSCON)上對Drizzle做了引見。Drizzle是一個能為某些特定種別的運用供給支撐的數據庫項目(“what if” project)。Drizzle的設計目的:

  1. Web運用。
  2. 雲盤算組件。
  3. 沒有營業邏輯的數據庫(別名存儲進程)。
  4. 多核架構。

Drizzle,一個精簡版的MySQL分支,在今朝的MySQL代碼根本之上,將存儲進程、視圖、觸發器、查詢緩存、PREPARE語句等等沒什 麼需要 的功效從代碼中刪失落,簡化對數據類型和存儲引擎的支撐,而且停止年夜膽的重構。終究要完成的目標是將MySQL的代碼年夜年夜簡化,理順MySQL的架構,改良 MySQL的代碼質量,進步體系的穩固性和機能。將更合適 Web運用、雲盤算組件、沒有營業邏輯的數據庫(別名存儲進程)、多核架構 等營業

Drizzle的特點有:

1. 基於MySQL 6.0的源碼樹

2. 無附加庫

3. 遵照POSIX

4. 微內核設計

5. 可插拔架構,實用於視圖、存儲進程、UDF、存儲引擎等

6. 跨多個節點的Sharding技巧

7. 智能署理

8. 多CPU/多核CPU

9. 優化的字段類型

10. 高效的內存應用

11. 沒有外部ACL,應用LDAP/PAM

12. 沒稀有據庫數據格局化

13. 整頓有序的Make體系

14. 缺省存儲引擎為InnoDB

15. 移除Windows兼容性

Drizzle 缺省的存儲引擎是InnoDB,支撐的數據類型更少,根本上設計目的跟 MariaDB 完整分歧。MariaDB的設計目的是一個代替MySQL的數據庫,而 Drizzle 根本上是一個除MySQL以外你可以選擇的產物,而且根本上設計目的是針對將來的雲盤算和散布式Web存儲的偏向去的,今朝能夠不是太穩固,不合適在運 營情況應用,然則相當的值得等待。

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

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

Drizzle網站:http://drizzle.org/

總結語

根本下去說,今朝MySQL照樣主流(MyISAM/InnoDB),然則將來成長弗成猜測,而且有這些除MySQL以外的選擇,或許有一天Oracle把MySQL完全祛除失落了,然則我們異樣還有 MariaDB、Drizzle可以選擇,這就是開源的力氣。

比較幾個MySQL的存儲引擎,Maria 和 XtraDB 是值得年夜家今朝投入慢慢應用的行列的,多做一些測試,灰度放亮,取得一個公道成果然後再應用是比擬適合的。MySQL的數據庫分支來講,MariaDB 也是比擬值得測驗考試應用的,究竟今朝 Drizzle 還不是太成熟穩固,而且紛歧定合適你所做的營業。我所懂得國際部門互聯網公司也有在應用 MariaDB 的,而且後果不錯,年夜家也都可以依照本身的情形來應用。

今朝NoSQL活動如火如荼,有些營業更合適采取Key==>Value或這是BigTable類型的數據存儲方法,或許MySQL不是最好 的,固然選擇最適合存儲,或許將來年夜部門數據庫市場會被NoSQL所占據,然則我認為關系型數據庫照樣將來幾年很主要的存儲方法。

在MySQL被Sun收買,曾經Sun被Oracle收買的進程中,全部開源世界都是在天翻地覆的變更,特殊是MySQL的命運一向都是一切應用和 酷愛開源數據庫的人們所存眷的,在這些貿易競爭中,那些開源斗士(好比 Monty),都經由過程其余方法,持續發揚了MySQL這類開源數據庫。我們歷久來看,總會有一些器械會消逝,好比 Falcon存儲引擎,有些器械會持續成長,好比 MariaDB或Drizzle,然則這些都為開源技巧做出了進獻,也為數據庫范疇增加了顏色。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved