MySQL儲存引擎【InnoDB、MyISAM、Memory】

來源:互聯網
上載者:User

標籤:資料存放區   舉例   維護   www   ack   不能   inno   多版本   預設   

資料庫,MySQL這樣存在多儲存引擎的資料庫軟體,清楚常見的儲存引擎的區別,使用合適的儲存引擎,使得項目跑的更順暢,有時候對於一個項目,甚至比項目本身都重要。這篇文章,旨在淺談常見的三種儲存引擎的區別,優缺點。是學習也是分享。

1:查看MySQL所支援的儲存引擎:

1.1 show engines;

1.2 show variables like ‘have%‘;

這樣,我們清楚了MySQL所支援的儲存引擎都有哪些。

下面,分析一下幾個常見的儲存引擎。InnoDB,MYISAM和Memory。


2:InnoDB儲存引擎

2.1:InnoDB具有事務,復原,崩潰修複能力和多版本並發的事務安全

2.2:關於InnoDB的auto_increment列:

2.2.1:InnoDB支援自動成長列,此列不可為空,且值必須唯一

2.2.2:此列必須為主鍵。插入時,不指定值,預設是自增都的值。指定0或者NULL時,也 是自增後的值。指定合法且不存在的值,則此後的自動從該值開始

2.3:InnoDB中的Foreign Key:

InnoDB支援外鍵。外鍵所在表通常稱為子表。所依賴表稱為父表。且父表中,被子表關聯的欄位必須為父表的主鍵。

(外鍵:可以簡單的理解為:當對父表的資料進行更新,刪除,添加時,子表的資料也會隨之變化。例子很多,此處不舉例)

2.4:InnoDB的儲存引擎及其優缺點:

InnoDB儲存引擎的儲存格式有三個檔案:

.frm表結構檔案,此檔案存放表建立時的欄位定義等資訊。

表的資料檔案,存放在innodb_data_home_dir目錄下,

表的索引檔案,存放在innodb_data_file_path目錄下

InnoDB儲存引擎具有良好的ACID特性。

InnoDB的缺點:讀寫效率相對MYISAM比較差。佔用的磁碟空間比較大。

2.5:InnoDB的理想使用場合:

高並發,更新操作比較多的表。需要使用事務的表。對自動災難恢複有要求的表。


3:MYISAM儲存引擎:

3.1:MYISAM儲存引擎表的儲存有三個檔案:

.frm檔案,儲存表的結構

.myd檔案,儲存表的資料

.myi檔案,儲存表的索引

3.2:MYISAM儲存引擎的儲存格式

3.2.1:靜態型

表的所有列都是靜態(定長的)。這種情況下,維護和訪問預定義格式儲存的資料需要的開銷很低。但是,需要的空間會更多,原因是,資料在儲存的時候,使 用每個列的最大空間來儲存,有浪費的空間。當然,磁碟這個都不是問題。

3.2.2:動態型

指標的列中有動態型的列(不定長的)。優點是:使用空間少。缺點是:更新資料時,需要移動資料,產生內部片段的同時,也降低了維護和訪問的效率。

對於這個問題,我們可以:(1)盡量的使用定長欄位(2)使用optimize table語句,整理表中的片段

3.2.3:壓縮型:

針對應用程式的聲明周期中,唯讀資料表,我們可以通過:myisampack工具轉化為MYISAM壓縮表,以減少使用的磁碟空間

3.4:MYISAM儲存引擎的優缺點:

優點:佔用空間小,處理速度快(相對InnoDB來說)

缺點:不支援事務的完整性和並發性


4:Memory儲存引擎

4.1:Memory儲存引擎的檔案儲存體形式

Memory儲存引擎也會再磁碟上形成一個 .frm的表結構檔案,只是表的資料件並不以檔案的形式存放在磁碟上。鑒於其資料存放在記憶體裡,因此,訪問速度更快。但需 要考慮的是:記憶體上資料的持久性。

4.2:Memory儲存引擎的索引類型

預設的是雜湊索引,也支援BTree索引

4.3:Memory儲存引擎的資料存放區周期

資料存放在記憶體上,一旦伺服器關機,資料將不再存在

4.4:Memory儲存引擎的優缺點:

Memory儲存引擎不支援變長表列

MySQL4.1.0之前,不支援auto_increment列

4.5:Memory儲存引擎的使用場合

速度要求快的,臨時資料

丟失以後,對項目整體沒有或者負面影響不大的時候。



來自為知筆記(Wiz)

MySQL儲存引擎【InnoDB、MyISAM、Memory】

聯繫我們

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