MysqL資料表類型

來源:互聯網
上載者:User

與Oracle 和SQL Server等大型資料庫系統一樣,MySql也是客戶/伺服器系統並且是單進程多線程架構的資料庫。

MySql 區別於其它資料庫系統的一個重要特點是支援插入式儲存引擎。

什麼是儲存引擎(資料表類型)

儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方法。

因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表類型(即儲存和操作此表的類型)。在Oracle 和SQL Server等資料庫中只有一種儲存引擎,所有資料存放區管理機制都是一樣的。而MySql資料庫一個鮮明的特點就是提供了多種儲存引擎。使用者可以根據不同的需求為資料表選擇不同的儲存引擎,使用者也可以根據自己的需要編寫自己的儲存引擎。


MySQL中自有的實際上支援五種不同的表類型.這五種類型分別是BDB、HEAP、ISAM、MERGE以及MyISAM。

其中BDB類型單獨屬於一類,稱為“事務安全型”(transaction-safe),其餘的表類型屬於第二類,稱為“非事務安全型”(non-transaction-safe)。


1,ISAM資料表

ISAM是mysql3.23版本之前的MySQL支特的唯一一種表類型,目前己經過時。MyIASM 處理常式逐步取代了ISAM處理常式,這種老式的表 類型己經沒有人再使用了。資料表在硬碟上的檔案儲存體方式:IASM Frm isd ism

2,MyIASM資料表

這是目前中MySQL預設使用的資料表類型。其優點是

  • 如果主機作業系統支援大尺寸檔案,資料表長度就能夠很大,就能客納更多的資料.
  • 資料表內容獨立於硬體也就是說可以把資料表在機器之間隨意拷貝
  • 提高了索引方面的功能
  • 提供了更好的索引鍵壓縮效果
  • auto_increment
    能力加強
  • 改進了對資料表的完整性檢查機制
  • 支援進行fulltext全文本搜尋

資料表在硬碟上的檔案儲存體方式:MyISAM Frm myd myi

  1. MyISAM:這種引擎是mysql最早提供的。不管是何種MyISAM表,目前它都不支援事務,行級鎖和外鍵約束的功能。這種引擎又可以分為靜態MyISAM、動態MyISAM 和壓縮MyISAM三種:

    • 靜態MyISAM:如果資料表中的各資料列的長度都是預先固定好的,伺服器將自動選擇這種表類型。因為資料表中每一條記錄所佔用的空間都是一樣的,所以這種表存取和更新的效率非常高。當資料受損時,恢複工作也比較容易做。

    • 動態MyISAM:如果資料表中出現varchar、xxxtext或xxxBLOB欄位時,伺服器將自動選擇這種表類型。相對於靜態MyISAM,這種表格儲存體空間比較小,但由於每條記錄的長度不一,所以多次修改資料後,資料表中的資料就可能離散的儲存在記憶體中,進而導致執行效率下降。同時,記憶體中也可能會出現很多片段。因此,這種類型的表要經常用optimize table 命令或最佳化工具來進行磁碟重組。
    • 壓縮MyISAM:以上說到的兩種類型的表都可以用myisamchk工具壓縮。這種類型的表進一步減小了佔用的儲存,但是這種表壓縮之後不能再被修改。另外,因為是壓縮資料,所以這種表在讀取的時候要先時行解壓縮。

3,Merge資料表

這是一種把相同結構的MyIASM資料表組織為一個邏輯單元的方法

MyISAM Merge引擎:這種類型是MyISAM類型的一種變種。合并表是將幾個相同的MyISAM表合并為一個虛表。常應用於日誌和資料倉儲。

資料表在硬碟上的檔案儲存體方式:Merge Frm mrg

4,HEAP資料表

這是一種使用記憶體的資料表,而且各個資料行的長度固定,這兩個特性使得這種類型資料表的檢索速度非常快,作為一種臨時性的資料表,HEAP在某些特定情況下很有用。

資料表在硬碟上的檔案儲存體方式:Heap Frm

memory(heap):這種類型的資料表只存在於記憶體中。它使用散列索引,所以資料的存取速度非常快。因為是存在於記憶體中,所以這種類型常應用於暫存資料表中。

5,BDB資料表

這種資料表支援交易處理機制,具有良好的並發效能

資料表在硬碟上的檔案儲存體方式:BDB Frm db

6,InnoDB資料表

這是最近加入MySQL的資料表類型,有許多新的特性

  1. 支援交易處理機制
  2. 崩潰後能夠立刻恢複
  3. 支援外鍵功能,包括串聯刪除
  4. 具有並發功能

資料表在硬碟上的檔案儲存體方式:InnoDB frm

InnoDB:InnoDB表類型可以看作是對MyISAM的進一步更新產品,它提供了事務、行級鎖機制和外鍵約束的功能。

archive:這種類型只支援select 和 insert語句,而且不支援索引。常應用於日誌記錄和彙總分析方面。

參考來源:http://www.nowamagic.net/database/db_TypeOfTable.php 

http://database.51cto.com/art/201011/234306.htm

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.