首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 存儲引擎總覽:InnoDB、MyISAM、Memory 等特性與選型

     編輯:MySQL 綜合教學

MySQL 存儲引擎總覽:InnoDB、MyISAM、Memory 等特性與選型

MySQL 採用插件式存儲引擎架構,不同引擎適用不同場景。本文列出常見引擎特性、查看命令及選型建議。

查看支持的引擎

SHOW ENGINES;
-- 或美化輸出
SHOW ENGINES\G
-- 查看默認引擎
SHOW VARIABLES LIKE 'storage_engine';

主流引擎對比

選型建議

  1. 99% 場景用 InnoDB:事務、行鎖、外鍵、崩潰安全、全文索引 (5.6+),無理由不用。
  2. 只讀分析/全文檢索舊系統:MyISAM 仍可考慮,但新項目建議 InnoDB + ngram 解析器。
  3. 臨時中間結果/緩存:MEMORY 表,數據量小、可重建。
  4. 海量日誌歸檔:ARCHIVE 引擎壓縮率高、插入快。
  5. 避免混用:同一實例盡量統一 InnoDB,減少運維認知負擔。

修改默認引擎

# my.cnf
[mysqld]
default-storage-engine=InnoDB

或會話級:SET default_storage_engine=MyISAM;

查看表引擎

SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';
-- 或
SHOW CREATE TABLE tbl_name;
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
引擎事務鎖粒度外鍵全文索引典型場景備註
InnoDB✅ ACID行鎖✅5.6+ ✅**默認引擎**,OLTP、高併發、數據完整性要求高聚簇索引、MVCC、崩潰恢復
MyISAM❌表鎖❌✅ (早期優勢)只讀/多讀少寫、全文檢索 (舊版)、非關鍵日誌不支持事務、崩潰易損壞
MEMORY (HEAP)❌表鎖❌❌臨時表、緩存表、查找表(數據可重建)數據在內存,重啟丟失
ARCHIVE❌行鎖❌❌歸檔日誌、審計流水(僅插入/查詢)高壓縮、無索引(5.1+支持)
CSV❌表鎖❌❌與外部 CSV 文件交換數據不支持索引
MRG_MYISAM (MERGE)❌表鎖❌✅將多個同結構 MyISAM 表作為一個邏輯表便於分區式管理
FEDERATED❌遠程❌❌訪問遠程 MySQL 實例性能依賴網絡
BLACKHOLE✅行鎖❌❌複制過濾、性能測試(寫入即丟棄)「黑洞」引擎