MySql三種常見引擎及其區別

小夥伴00發表於2020-12-20

一、引言

與其他DBMS一樣,MySQL有一個具體管理和處理資料的內部引擎,當你使用CREATE TABLE語句的時候,該引擎建立表,在你使用SELECT語句或者進行其他資料庫操作的時候,該引擎在內部處理你的請求。在多數時候,此引擎都隱藏在DBMS內,不需要過多地關注它。

但是MySQL與其他DBMS不一樣,它具有多種引擎。它打包多個引擎,這些引擎都隱藏在MySQL伺服器內,全都能執行CREATE TABLE和SELECT等命令。

二、MySQL常見的三種引擎

  • InnDB是一個可靠的事務處理引擎,但是它不支援全文搜尋
  • MEMORY在功能等同於MyISAM,但由於資料儲存在記憶體中,速度很快(特別適合用於建立臨時表)
  • MyISAM是一個效能極高的引擎,它支援全文搜尋,但不支援事務處理

三、引擎的使用

  1. 建立表時需指定引擎,可以使用ENGINE=語句,如果省略,則使用預設引擎(很可能是MyISAM)
  2. 引擎型別可以混用,一個資料庫中不同表可以使用不同引擎
  3. 混用引擎型別有一個缺陷,外來鍵不能跨引擎,即使用了一個引擎的表不能引用具有使用不同引擎的表的外來鍵

相關文章