欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL數據庫存儲引擎和分支現狀分析

 更新時間:2011年03月06日 16:20:31   作者:  
在MySQL經歷了2008年Sun的收購和2009年Oracle收購Sun的過程中,基本處于停滯發(fā)展的情況,在可以預見的未來,MySQL是肯定會被Oracle擱置并且逐步雪藏消滅掉的。
MySQL隨著相應的各主創(chuàng)和內部開發(fā)人員的離去,締造了各個不同的引擎和分支,讓MySQL有希望繼續(xù)發(fā)揚光大起來。 

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

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

MySQL存儲引擎介紹

Falcon存儲引擎

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

Falcon引擎是MySQL AB公司基于Netfrastrucure公司的產品開發(fā)的(Netfrastrucure公司被MySQL AB收購),Falcon 當初的目標是嵌入到MySQL 6.0中用來取代InnoDB引擎,基本很多功能設計都是按照InnoDB的目標去設計的。

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

通過網上的一些測試結果Falcon的性能還是很糟糕的,寫入速度是 MyISAM 的 1/10 ~ 1/20,Select 的優(yōu)化也有問題,添加了索引感覺還會進行全表掃描。所以,我終究感覺 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) 開發(fā)的,這是一款利用MVCC來實現的事務型存儲引擎。它既同時支持悲觀和樂觀并發(fā)控制,這一點其他的存儲引擎目前都不支持。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服務器形式的商業(yè)版本。

性能上來說,SolidDB for MySQL開源數據庫再次被證明能夠完全滿足高吞吐量、關鍵任務級應用對系統(tǒng)性能和可擴展性的要求。

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

官方網站:http://www.ibm.com/software/data/SolidDB/

XtraDB存儲引擎

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

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

XtraDB的設計目標也是取代InnoDB作為目標,它是基于InnoDB來做的開發(fā),XtraDB 100%的兼容 InnoDB,通常可以認為 XtraDB 是 InnoDB的升級或者替代版本。在性能上來說,目前 XtraDB 是非常高的,在大部分情況下也是比較穩(wěn)定的,值得你嘗試使用。同樣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的創(chuàng)始人,MyISAM的作者Monty (Michael Widenius) 開發(fā),命名為Maria是因為他的第三個小孩就叫Maria。Maria是Monty在MySQL公司的時候就開始開發(fā)的一個MySQL的分支引 擎,Sun收購MySQL后,因為與Sun針對MySQL團隊的一些問題不和,然后在2009年初離開了Sun,成立了 Monty Program Ab 公司,專門用于針對 Maria 引擎的開發(fā),同時開發(fā)了一個MySQL的分支,叫做 MariaDB。

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

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

Maria的特點:

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

◆通過拷貝日志就能進行增強備份

◆高效的磁盤存儲

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

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

Maria手冊:http://askmonty.org/wiki/Maria

PrimeBase XT (PBXT) 存儲引擎

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

主要特性如下:

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

◆事務性 :支持啟動開始,COMMIT和ROLLBACK和恢復上

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

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

◆死鎖檢測 :立即通知如果客戶端進程已陷入死鎖

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

◆寫一次 :PBXT避免的架構雙寫入使用日志。

◆BLOB的流 :在結合的 BLOB Streaming engine.。

按照有人的測試結果來看,PBXT存儲引擎版本的TPS隨著線程數的增長,表現比較穩(wěn)定,性能上與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) 創(chuàng)辦的Monty Program Ab公司所開發(fā)的免費開源的數據庫服務器?;旧?MariaDB 的歷史跟我上面講的 Maria 存儲引擎歷史一樣。MariaDB的設計目標就是用來取代 MySQL Server。Monty是開源數據庫聯盟(Open Database Alliance)的發(fā)起者,所以 MariaDB 也是開源數據庫聯盟的成員。

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

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

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

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相當,但為了提高性能和擴展性,它從原來的核心系統(tǒng)里移除了部分功能。 Drizzle 也是開源數據庫聯盟(Open Database Alliance)成員。

MySql的架構設計總監(jiān)Brian Aker在O'Reilly開放源碼大會(OSCON)上對Drizzle做了介紹。Drizzle是一個能為某些特定類別的應用提供支持的數據庫項目(“what if” project)。Drizzle的設計目標:

  1. Web應用。
  2. 云計算組件。
  3. 沒有業(yè)務邏輯的數據庫(又名存儲過程)。
  4. 多核架構。

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

Drizzle的特征有:

1. 基于MySQL 6.0的源碼樹

2. 無附加庫

3. 遵守POSIX

4. 微內核設計

5. 可插拔架構,適用于視圖、存儲過程、UDF、存儲引擎等

6. 跨多個節(jié)點的Sharding技術

7. 智能代理

8. 多CPU/多核CPU

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

10. 高效的內存使用

11. 沒有內部ACL,使用LDAP/PAM

12. 沒有數據庫數據格式化

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

14. 缺省存儲引擎為InnoDB

15. 移除Windows兼容性

Drizzle 缺省的存儲引擎是InnoDB,支持的數據類型更少,基本上設計目標跟 MariaDB 完全不同。MariaDB的設計目標是一個取代MySQL的數據庫,而 Drizzle 基本上是一個除了MySQL之外你可以選擇的產品,并且基本上設計目標是針對未來的云計算和分布式Web存儲的方向去的,目前可能不是太穩(wěn)定,不適合在運 營環(huán)境使用,但是相當的值得期待。

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

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

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

總結語

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

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

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

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

相關文章

  • 深入解析MySQL的窗口函數

    深入解析MySQL的窗口函數

    這篇文章主要介紹了深入解析MySQL的窗口函數,窗口可以理解為記錄集合,窗口函數就是在滿足某種條件的記錄集合上執(zhí)行的特殊函數,即:應用在窗口內的函數,需要的朋友可以參考下
    2023-07-07
  • windows下MySQL免安裝版配置教程mysql-5.6.51-winx64.zip版本(最新安裝教程)

    windows下MySQL免安裝版配置教程mysql-5.6.51-winx64.zip版本(最新安裝教程)

    這篇文章主要介紹了windows下MySQL免安裝版配置教程mysql-5.6.51-winx64.zip版本(最新安裝教程),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • 完美解決mysql in條件語句只讀取一條信息問題的2種方案

    完美解決mysql in條件語句只讀取一條信息問題的2種方案

    使用mysql多表查詢時一個表中的某個字段作為另一表的in查詢條件,只能讀取一條信息,而直接用數字的話可以正常讀取
    2018-04-04
  • 簡單介紹MySQL中的事務機制

    簡單介紹MySQL中的事務機制

    這篇文章主要介紹了MySQL中的事務機制,通過實例介紹了大概的流程,需要的朋友可以參考下
    2015-04-04
  • MySQL分區(qū)表分區(qū)策略詳解

    MySQL分區(qū)表分區(qū)策略詳解

    這篇文章主要介紹了MySQL分區(qū)表分區(qū)策略詳解,分區(qū)是一種表的設計模式,通俗地講表分區(qū)是將一大表,根據條件分割成若干個小表。但是對于應用程序來講,分區(qū)的表和沒有分區(qū)的表是一樣的,需要的朋友可以參考下
    2023-07-07
  • MySQL5.7 JSON類型使用詳解

    MySQL5.7 JSON類型使用詳解

    MySQL5.7發(fā)布后,專門設計了JSON數據類型以及關于這種類型的檢索以及其他函數解析。 我們先看看MySQL老版本的JSON存取方式,具體內容詳情大家參考下本文吧
    2017-10-10
  • MySQL中in和exists區(qū)別詳解

    MySQL中in和exists區(qū)別詳解

    最近在寫SQL語句時,對選擇IN 還是Exists猶豫不決,所以就上網查詢了一下資料,本文就詳細的介紹了兩個方法的區(qū)別,感興趣的可以了解一下
    2021-06-06
  • mysql 5.7.17 安裝配置方法圖文教程

    mysql 5.7.17 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了mysql 5.7.17 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 解決mysql報錯:1264-Out of range value for column ‘字段‘ at row 1

    解決mysql報錯:1264-Out of range value for&nb

    這篇文章主要介紹了解決mysql報錯:1264-Out of range value for column ‘字段‘ at row 1問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解MySQL從入門到放棄-安裝

    詳解MySQL從入門到放棄-安裝

    這篇文章主要介紹了MySQL從入門到放棄-安裝,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論