Mysql支持多種引擎,在5.5版本後默認爲InnoDB,以前爲MISAM。sql
SHOW ENGINES
複製代碼
CREATE TABLE TEST(NAME VARCHAR(255)) ENGINE =InnoDB;
複製代碼
alter table test engine =InnoDB;
複製代碼
不支持事務,不支持外鍵,訪問速度快。以SELECT,INSERT爲主的的應用能夠使用該引擎。數據庫
表可能會損壞,可修復。緩存
支持三種不一樣的存儲格式,分別是靜態表、動態表和壓縮表。安全
靜態表字段長度不可變,優勢是存儲迅速,易緩存,出現故障易恢復,缺點是佔用空間較大,由於字段長度不可變,會填充空格,在訪問時會去除空格。若原數據尾部存在空格也會去除。工具
動態表字段長度可變,佔用空間少。若頻繁更新和刪除記錄會產生碎片,須要按期執行 OPTIMIZE 命令來優化性能,出現故障較難恢復。性能
壓縮表由myisampack 工具建立,佔用空間很是小。優化
InnoDB提供了事務安全,具備提交、回滾、崩潰恢復能力。可是寫效率較差,會佔用更多的資源保留數據和索引。spa
與其餘數據庫的差別:code
自動增加列cdn
自動增加列必須是索引。
外鍵約束
InnoDB是Mysql惟一支持外鍵的引擎。
存儲方式
InnoDB有兩種存儲表方式,共享表空間存儲和多表空間存儲。
數據存放在內存中,訪問速度極快,默認採起哈希索引。一旦服務關閉,數據就會丟失。