MySql儲存引擎特性對比

來源:互聯網
上載者:User

標籤:

下表顯示了各種儲存引擎的特性:

其中最常見的兩種儲存引擎是MyISAM和InnoDB

剛接觸MySQL的時候可能會有些驚訝,竟然有不支援事務的儲存引擎,學過關係型資料庫理論的人都知道,事務是關係型資料庫的核心。但是在現實應用中(特別是互連網),為了提高效能,在某些情境下可以擯棄事務。下面一一介紹各種儲存引擎:

 

MyISAM儲存引擎MyISAM是MySQL官方提供預設的儲存引擎,其特點是不支援事務、表鎖和全文索引,對於一些OLAP系統,操作速度快。 每個MyISAM在磁碟上儲存成三個檔案。檔案名稱都和表名相同,副檔名分別是.frm(儲存表定義)、.MYD (MYData,儲存資料)、.MYI (MYIndex,儲存索引)。這裡特別要注意的是MyISAM不快取資料檔案,只緩衝索引檔案。 回到頂部InnoDB儲存引擎

InnoDB儲存引擎支援事務,主要面向OLTP方面的應用,其特點是行鎖設定、支援外鍵,並支援類似於Oracle的非鎖定讀,即預設情況下讀不產生鎖。InnoDB將資料放在一個邏輯資料表空間中(類似Oracle)。InnoDB通過多版本並發控制來獲得高並發性,實現了ANSI標準的4種隔離等級,預設為Repeatable,使用一種被稱為next-key locking的策略避免幻讀。

對於表中資料的儲存,InnoDB採用類似Oracle索引組織表Clustered的方式進行儲存。

InnoDB 儲存引擎提供了具有提交、復原和崩潰恢複能力的事務安全。但是對比Myisam的儲存引擎,InnoDB 寫的處理效率差一些並且會佔用更多的磁碟空間以保留資料和索
引。

 

回到頂部NDB儲存引擎

NDB儲存引擎是一個叢集儲存引擎,類似於Oracle的RAC,但它是Share Nothing的架構,因此能提供更進階別的高可用性和可擴充性。NDB的特點是資料全部放在記憶體中,因此通過主鍵尋找非常快。

關於NDB,有一個問題需要注意,它的串連(join)操作是在MySQL資料庫層完成,不是在儲存引擎層完成,這意味著,複雜的join操作需要巨大的網路開銷,查詢速度會很慢。

 

回到頂部Memory (Heap) 儲存引擎

Memory儲存引擎(之前稱為Heap)將表中資料存放在記憶體中,如果資料庫重啟或崩潰,資料丟失,因此它非常適合儲存臨時資料。

 

回到頂部Archive儲存引擎

正如其名稱所示,Archive非常適合儲存歸檔資料,如日誌資訊。它只支援INSERT和SELECT操作,其設計的主要目的是提供高速的插入和壓縮功能。

 

回到頂部Federated儲存引擎

Federated儲存引擎不存放資料,它至少指向一台遠程MySQL資料庫伺服器上的表,非常類似於Oracle的透明網關。

 

回到頂部Maria儲存引擎

Maria儲存引擎是新開發的引擎,其設計目標是用來取代原有的MyISAM儲存引擎,從而成為MySQL預設的儲存引擎。

 

最後需要強調一點,雖然MySQL有非常多的儲存引擎,但它們之間不存在優劣關係,而是根據不同的應用選擇適合自己業務的儲存引擎。如果你能力夠強,也可以自己修改或開發儲存體引擎,這不就是開源的魅力所在嗎?

 

本文轉自:http://www.open-open.com/lib/view/open1370959041320.html

MySql儲存引擎特性對比

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.