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

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

數(shù)據(jù)庫 MySQL
MySQL數(shù)據(jù)庫是一種開放源代碼的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),MySQL數(shù)據(jù)庫系統(tǒng)使用最常用的數(shù)據(jù)庫管理語言--結(jié)構(gòu)化查詢語言(SQL)進(jìn)行數(shù)據(jù)庫管理。MySQL隨著相應(yīng)的各主創(chuàng)和內(nèi)部開發(fā)人員的離去,締造了各個不同的存儲引擎和分支,下面分析MySQL數(shù)據(jù)庫存儲引擎和分支現(xiàn)狀。

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

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

  要了解主要存儲引擎,請參考手冊:http://dev.mysql.com/doc/refman/5.1/zh/index.html

 

  MySQL存儲引擎介紹:

  Falcon存儲引擎

  Falcon存儲引擎是MySQL當(dāng)時寄以厚望的存儲引擎,主要是為了面對當(dāng)時Oracle收購了InnoBase公司的情況,用來取代InnoDB的一個存儲引擎。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è)計和開發(fā)運行在云計算上面的關(guān)系/語義數(shù)據(jù)庫,按照2010年目前NoSQL市場的發(fā)展來看,他的選擇是正確的,但是帶來的結(jié)果是Falcon陷入一個沒有主導(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è)計都是按照InnoDB的目標(biāo)去設(shè)計的。

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

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

 

#p#

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

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

  要了解主要存儲引擎,請參考手冊:http://dev.mysql.com/doc/refman/5.1/zh/index.html

#p#

 Maria存儲引擎

  Maria由MySQL的創(chuàng)始人,MyISAM的作者M(jìn)onty (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,提供崩潰后的故障恢復(fù)功能。更長遠(yuǎn)的目標(biāo)是成為一個全功能的事務(wù)型存儲引擎,支持ACID、回滾、多版本并發(fā)控制、行級鎖、成組提交,同時 也可以選擇不支持事務(wù),最終代替MyISAM成為MySQL的默認(rèn)存儲引擎。

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

  Maria的特點

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

  2. 通過拷貝日志就能進(jìn)行增強備份

  3. 高效的磁盤存儲

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

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

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

  [PrimeBase XT (PBXT) 存儲引擎 ]

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

  主要特性如下:

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

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

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

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

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

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

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

  BLOB的流 :在結(jié)合的 BLOB Streaming engine.。 (http://www.blobstreaming.org/)

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

  性能測試:http://imysql.cn/2008_07_25_innodb_vs_pbxt

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

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

 

#p#

MySQL分支介紹:

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

  MariaDB基于事務(wù)的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”功能提供解決多數(shù)據(jù)連接問題。目前 MariaDB 發(fā)布的Release版本是 5.1.44,基本上應(yīng)該是跟 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網(wǎng)站:http://askmonty.org

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

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

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

  1. Web應(yīng)用。

  2. 云計算組件。

  3. 沒有業(yè)務(wù)邏輯的數(shù)據(jù)庫(又名存儲過程)。

  4. 多核架構(gòu)。

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

  Drizzle的特征有:

  * 基于MySQL 6.0的源碼樹

  * 無附加庫

  * 遵守POSIX

  * 微內(nèi)核設(shè)計

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

  * 跨多個節(jié)點的Sharding技術(shù)

  * 智能代理

  * 多CPU/多核CPU

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

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

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

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

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

  * 缺省存儲引擎為InnoDB

  * 移除Windows兼容性

#p#

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

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

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

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

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

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

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

      MySQL數(shù)據(jù)庫存在的存儲引擎和分支問題,相信經(jīng)過MySQL的努力,一定會一一克服。

【編輯推薦】

  1. MySQL數(shù)據(jù)庫存儲引擎的概念與用途
  2. 如何更改在Ubuntu下的MySQL數(shù)據(jù)庫存儲位置
  3. MySQL數(shù)據(jù)庫存儲引擎詳解
責(zé)任編輯:迎迎 來源: enet.com.cn
相關(guān)推薦

2011-03-01 11:21:11

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

2010-05-14 17:44:47

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

2011-08-16 16:22:38

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

2018-05-14 10:56:36

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

2022-08-10 14:03:01

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

2017-09-03 15:41:31

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

2024-06-03 08:29:20

2022-09-16 11:33:24

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

2011-02-25 17:47:44

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

2011-08-01 23:08:33

MySQL存儲引擎

2023-01-18 08:25:23

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

2009-05-27 11:01:29

UbuntuMySQL存儲

2011-05-17 15:30:27

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

2011-08-15 15:14:54

SQL Server存儲過程異常處理

2011-08-05 14:31:04

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

2024-05-20 10:20:37

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

2018-04-23 09:25:24

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

2018-06-14 15:05:22

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

2019-07-23 15:34:29

MySQL存儲引擎
點贊
收藏

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