程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL存儲引擎【InnoDB、MyISAM、Memory】

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

編輯:MySQL綜合教程

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


數據庫,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存儲引擎的使用場合

速度要求快的,臨時數據

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved