存儲(chǔ)引擎是數(shù)據(jù)庫(kù)管理系統(tǒng)用來(lái)從數(shù)據(jù)庫(kù)創(chuàng)建,讀取和更新數(shù)據(jù)的軟件模塊。MySQL中有兩種類型的存儲(chǔ)引擎:事務(wù)性和非事務(wù)性。對(duì)于MySQL 5.5及更高版本,默認(rèn)存儲(chǔ)引擎為InnoDB。在5.5版之前,MySQL的默認(rèn)存儲(chǔ)引擎是MyISAM。那么MySQL 存儲(chǔ)引擎有哪些?區(qū)別是什么?其實(shí)關(guān)于MySQL 存儲(chǔ)引擎有九大類型,但是區(qū)別卻只有兩個(gè),以下是詳細(xì)介紹。
MySQL 存儲(chǔ)引擎有哪些?
1、InnoDB
這是MySQL 5.5或更高版本的默認(rèn)存儲(chǔ)引擎。它提供了事務(wù)安全表,支持外鍵引用完整性約束。它支持提交、回滾和緊急恢復(fù)功能來(lái)保護(hù)數(shù)據(jù)。它還支持行級(jí)鎖定。當(dāng)在多用戶環(huán)境中使用時(shí),它的“一致非鎖定讀取”提高了性能。它將數(shù)據(jù)存儲(chǔ)在集群索引中,從而減少了基于主鍵的查詢的I/O。
2、MyISAM
該存儲(chǔ)引擎管理非事務(wù)性表,提供高速存儲(chǔ)和檢索,支持全文搜索。
3、MEMORY
提供內(nèi)存中的表,以前稱為堆。它在RAM中處理所有數(shù)據(jù),以便比在磁盤(pán)上存儲(chǔ)數(shù)據(jù)更快地訪問(wèn)。用于快速查找引用和其他相同的數(shù)據(jù)。
4、MERGE
將多個(gè)類似的MyISAM表分組為一個(gè)表,可以處理非事務(wù)性表,默認(rèn)情況下包括這些表。
5、EXAMPLE
你可以使用此引擎創(chuàng)建表,但不能存儲(chǔ)或獲取數(shù)據(jù)。這樣做的目的是教開(kāi)發(fā)人員如何編寫(xiě)新的存儲(chǔ)引擎。
6、ARCHIVE
用于存儲(chǔ)大量數(shù)據(jù),不支持索引。
7、CSV
在文本文件中以逗號(hào)分隔值格式存儲(chǔ)數(shù)據(jù)。
8、BLACKHOLE
受要存儲(chǔ)的數(shù)據(jù),但始終返回空。
9、FEDERATED
將數(shù)據(jù)存儲(chǔ)在遠(yuǎn)程數(shù)據(jù)庫(kù)中。
MySQL 存儲(chǔ)引擎有哪些區(qū)別?
MyISAM引擎:
1、不支持事務(wù)
不支持事務(wù),但是整個(gè)操作是原子性的。
2、不支持外鍵
不支持外鍵,支持表鎖,每次所住的是整張表。
MyISAM的表鎖有讀鎖和寫(xiě)鎖:
表共享讀鎖和表獨(dú)占寫(xiě)鎖。在對(duì)MyISAM表進(jìn)行讀操作時(shí),不會(huì)阻塞其他用戶對(duì)同一張表的讀請(qǐng)求,但是會(huì)阻塞其他用戶對(duì)表的寫(xiě)請(qǐng)求;對(duì)其進(jìn)行寫(xiě)操作時(shí)會(huì)阻塞對(duì)同一表讀操作和寫(xiě)操作。
3、一個(gè)MyISAM表有三個(gè)文件
一個(gè)MyISAM表有三個(gè)文件:索引文件,表結(jié)構(gòu)文件,數(shù)據(jù)文件。
4、采用非聚集索引
采用非聚集索引,索引文件的數(shù)據(jù)域存儲(chǔ)指向數(shù)據(jù)文件的指針。輔索引與主索引基本一致,但是輔索引不用保證唯一性。
Innodb引擎:
1、支持事務(wù)
支持事務(wù),支持事務(wù)的四種隔離級(jí)別;是一種具有事務(wù)、回滾和崩潰修復(fù)能力的事務(wù)安全型表。
2、支持行鎖和外鍵約束
支持行鎖和外鍵約束,因此可以支持寫(xiě)并發(fā)
3、一個(gè)Innodb表存儲(chǔ)在一個(gè)文件內(nèi)
一個(gè)Innodb表存儲(chǔ)在一個(gè)文件內(nèi),也可能為多個(gè),受操作系統(tǒng)文件大小的限制
4、主鍵索引采用聚集索引
主鍵索引采用聚集索引,輔索引的數(shù)據(jù)域存儲(chǔ)主鍵的值;因此從輔索引查找數(shù)據(jù),需要先通過(guò)輔索引找到主鍵值,再訪問(wèn)主鍵索引;最好使用自增主鍵,防止插入數(shù)據(jù)時(shí),為維持B+樹(shù)結(jié)構(gòu),文件的大調(diào)整。
以上就是關(guān)于MySQL 存儲(chǔ)引擎有哪些以及他們的區(qū)別是什么的全部?jī)?nèi)容介紹,想了解更多關(guān)于MySQL 的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。