Aaron Li

MySQL: Storage Engine

常見的Storage Engine

  1. innoDB (Default)

    • 支援 transaction, foreign key
    • InnoDB 支援表, 行級鎖
    • 保證資料完整性
  2. MyISAM

    • 不支援 transaction, foreign key
    • MyISAM 只支援表級鎖
    • 讀取效率高
    • 佔用空間少
    • 在修改表時會鎖表
    • 適用場景是讀多寫少,且對完整性要求不高
    • MyISAM 崩潰後發生損壞的機率比InnoDB 高很多,而且復原的速度也更慢
  3. Memory

    • 不支援 transaction, foreign key
    • 存儲在內存中,因此它的讀寫效率很高
    • 服務重啟之後數據會丟失
    • 適用場景是讀寫效率要求高,但對數據丟失不敏感
innoDBMyISAMMEMORY
transactionVXX
Foreign KeyVXX
table-level locksVVV
row-level locksVXX