10、MySQL存储引擎有哪些?
數(shù)據(jù)庫存儲引擎是數(shù)據(jù)庫底層軟件組件,數(shù)據(jù)庫管理系統(tǒng)使用數(shù)據(jù)引擎進(jìn)行創(chuàng)建、查詢、更新和刪除數(shù)據(jù)操作。簡而言之,存儲引擎就是指表的類型。
數(shù)據(jù)庫的存儲引擎決定了表在計算機中的存儲方式。不同的存儲引擎提供不同的存儲機制、索引技巧、鎖定水平等功能,使用不同的存儲引擎還可以獲得特定的功能。
現(xiàn)在許多數(shù)據(jù)庫管理系統(tǒng)都支持多種不同的存儲引擎。MySQL 的核心就是存儲引擎。
MySQL 提供了多個不同的存儲引擎,包括處理事務(wù)安全表的引擎和處理非事務(wù)安全表的引擎。在 MySQL 中,不需要在整個服務(wù)器中使用同一種存儲引擎,針對具體的要求,可以對每一個表使用不同的存儲引擎。
MySQL 5.7 支持的存儲引擎有 InnoDB、MyISAM、Memory、Merge、Archive、CSV、BLACKHOLE 等。可以使用SHOW ENGINES;語句查看系統(tǒng)所支持的引擎類型,結(jié)果如圖所示。
Support 列的值表示某種引擎是否能使用,YES表示可以使用,NO表示不能使用,DEFAULT表示該引擎為當(dāng)前默認(rèn)的存儲引擎。
下面簡要描寫幾種存儲引擎,后面會對其中的幾種(主要是 InnoDB 和 MyISAM )進(jìn)行詳細(xì)講解。像 NDB 這樣的需要更多擴展性的討論,這超出了本教程的介紹范疇,所以在教程后面對它們不會介紹太多。
| ARCHIVE | 用于數(shù)據(jù)存檔的引擎,數(shù)據(jù)被插入后就不能在修改了,且不支持索引。 |
| CSV | 在存儲數(shù)據(jù)時,會以逗號作為數(shù)據(jù)項之間的分隔符。 |
| BLACKHOLE | 會丟棄寫操作,該操作會返回空內(nèi)容。 |
| FEDERATED | 將數(shù)據(jù)存儲在遠(yuǎn)程數(shù)據(jù)庫中,用來訪問遠(yuǎn)程表的存儲引擎。 |
| InnoDB | 具備外鍵支持功能的事務(wù)處理引擎 |
| MEMORY | 置于內(nèi)存的表 |
| MERGE | 用來管理由多個 MyISAM 表構(gòu)成的表集合 |
| MyISAM | 主要的非事務(wù)處理存儲引擎 |
| NDB | MySQL 集群專用存儲引擎 |
有幾種存儲引擎的名字還有同義詞,例如,MRG_MyISAM 和 NDBCLUSTER 分別是 MERGE 和 NDB 的同義詞。存儲引擎 MEMORY 和 InnoDB 在早期分別稱為 HEAP 和 Innobase。雖然后面兩個名字仍能被識別,但是已經(jīng)被廢棄了。
總結(jié)
以上是生活随笔為你收集整理的10、MySQL存储引擎有哪些?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9、MySQL系统变量(查看和修改)
- 下一篇: 15、如何选择MySQL存储引擎