萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 儲存引擎總覽:MyISAM、InnoDB、Memory、Merge 等特性比較

MySQL 獨特的插拔式儲存引擎架構

MySQL 允許針對不同表格選擇最適合的儲存引擎,常見引擎包括:

  • MyISAM、InnoDB、MEMORY、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED

其中 InnoDB、BDB 支援交易(ACID),其餘為非交易型引擎。

主流引擎特性比較

1. MyISAM(預設舊版引擎)

  • 不支援交易、外鍵
  • 表級鎖定,讀取速度極快
  • 三個檔案:.frm(結構)、.MYD(資料)、.MYI(索引)
  • 適合唯讀或以讀為主的場景

2. InnoDB(預設新版引擎)

  • 支援行級鎖定、外鍵、交易
  • 自動遞增欄位需為索引鍵值
  • 資料與索引共用表空間或獨立表空間
  • 適用於高併發、資料完整性要求高的業務

3. MEMORY(HEAP)

  • 資料儲存在記憶體,速度最快
  • 唯一對應 .frm 結構檔,重啟後資料遺失
  • 預設使用 HASH 索引,適合暫存表、快取表

4. MERGE

  • 多個結構相同的 MyISAM 表邏輯聯集
  • 本身不儲存資料,操作實際導向子表
  • 插入需透過 INSERT_METHOD 指定目標子表

選擇建議

場景建議引擎
一般 OLTP、需交易InnoDB
唯讀/大量讀取、全文搜尋MyISAM
暫存計算、查詢快取MEMORY
大量歷史資料分區查詢MERGE / Partitioned InnoDB
copyright © 萬盛學電腦網 all rights reserved