數(shù)據(jù)庫(kù)引擎是MySQL組件,可以處理SQL操作,例如從數(shù)據(jù)庫(kù)創(chuàng)建、讀取和更新數(shù)據(jù)。MySQL中有兩種類型的引擎:事務(wù)性和非事務(wù)性。
1、事務(wù)型數(shù)據(jù)庫(kù):在這種類型中,如果數(shù)據(jù)庫(kù)不完整,我們可以回滾對(duì)數(shù)據(jù)庫(kù)的寫入操作。這些操作稱為事務(wù)。主要是,現(xiàn)代引擎是事務(wù)性的。
2、非事務(wù)數(shù)據(jù)庫(kù):與事務(wù)數(shù)據(jù)庫(kù)不同,它們不提供回滾/提交。相反,我們需要手動(dòng)編寫代碼來(lái)執(zhí)行回滾操作。
在本文中,我們將了解InnoDB、MyISAM、MEMORY、MERGE、CSV和SEQUENCE引擎及其特性,以及它們的優(yōu)缺點(diǎn)。
一、InnoDB:InnoDB是DBMS MySQL和MariaDB的存儲(chǔ)引擎。它是MySQL 5.5及更高版本的默認(rèn)存儲(chǔ)引擎。它取代了MyISAM作為默認(rèn)引擎。
特征:
1、它提供標(biāo)準(zhǔn)的符合ACID的事務(wù)功能,以及外鍵支持。Oracle建議將InnoDB用于表。
2、它支持多版本并發(fā)控制、崩潰恢復(fù)和回滾操作。由于行級(jí)鎖定,多用戶性能成為可能。
3、它也用于MariaDB服務(wù)器。為了維護(hù)數(shù)據(jù)的完整性和安全性,InnoDB支持外鍵約束。
4、InnoDB支持緩存數(shù)據(jù)和索引的緩沖區(qū)。
5、它提供了一種表鎖定方法,這意味著一次只有一個(gè)用戶可以更改表。
優(yōu)點(diǎn):
1、支持ACID(原子性、一致性、隔離性和持久性)屬性以保護(hù)用戶數(shù)據(jù)。
2、通過(guò)Oracle風(fēng)格的高性能和一致讀取訪問(wèn)多個(gè)用戶。
3、支持使用有助于一致更新、插入和刪除操作的外鍵。此外,它有助于維護(hù)數(shù)據(jù)庫(kù)表內(nèi)容的完整性。
缺點(diǎn):
1、不支持全文搜索。
2、如果性能是優(yōu)先考慮的,那么它就不會(huì)被使用,因?yàn)樗萂yISAM 慢。
3、外鍵關(guān)系的使用使其使用起來(lái)很復(fù)雜。
二、MyISAM:是MySQL DBMS 5.5之前版本的默認(rèn)引擎。MyISAM是一個(gè)高速存儲(chǔ)和檢索的存儲(chǔ)引擎。它不支持交易。它很容易在系統(tǒng)之間復(fù)制,并且數(shù)據(jù)占用空間小。主要用于Web和數(shù)據(jù)倉(cāng)庫(kù)。
特征:
1、MyISAM存儲(chǔ)在3個(gè)文件中:.frm–存儲(chǔ)表格式,.MYD–數(shù)據(jù)文件,.MYI–索引文件。
2、它支持三種存儲(chǔ)格式:固定、動(dòng)態(tài)和壓縮。
3、最大密鑰長(zhǎng)度為1000字節(jié)。
4、每個(gè)表的最大索引數(shù)和每個(gè)索引的列數(shù)分別為64和16。
優(yōu)點(diǎn):
1、MyISAM比其他引擎更簡(jiǎn)單。
2、它比任何其他通用數(shù)據(jù)庫(kù)引擎都快,它還提供全文搜索
缺點(diǎn):
1、它很容易導(dǎo)致表?yè)p壞。但是,我們可以使用REPAIR TABLE查詢來(lái)恢復(fù)它。
2、它不支持外鍵約束或事務(wù)。
三、CSV:用于在文本文件中存儲(chǔ)CSV格式。它總是被編譯到MySQL 服務(wù)器中。它重量輕,可以很容易地導(dǎo)入到電子表格程序中。
特征:
1、CSV表使用CSV格式。因此,它可用于數(shù)據(jù)交換,例如,使用電子表格。
2、即使MySQL服務(wù)器已關(guān)閉,也可以使用標(biāo)準(zhǔn)文件編輯器編輯數(shù)據(jù)
3、MySQL服務(wù)器海量數(shù)據(jù)的瞬時(shí)加載。
優(yōu)點(diǎn):
1、在創(chuàng)建CSV文件后,將創(chuàng)建圖元文件來(lái)存儲(chǔ)表的狀態(tài)和表中存在的行數(shù)。
2、數(shù)據(jù)使用通用分隔值格式存儲(chǔ)在文本文件中。
缺點(diǎn):
1、CSV引擎不支持索引。
2、它不支持分區(qū)。
3、它必須在所有列上都具有NOT NULL屬性。
四、MERGE:使用MERGE引擎創(chuàng)建的表用于輕松處理大量數(shù)據(jù)。它是一組相同的MyISAM表,可以作為一個(gè)表使用。因此,它也被稱為 MRG_MyISAM引擎,它適用于數(shù)據(jù)倉(cāng)庫(kù)環(huán)境。
特征:
1、它是在MySQL 3.23.25 版本中引入的。
2、UNION 和INSERT_METHOD是MERGE表的兩個(gè)獨(dú)特功能。
3、MERGE表沒(méi)有PRIMARY KEY或UNIQUE索引,因?yàn)樗鼈儾荒軐?duì)所有表強(qiáng)制執(zhí)行唯一性。
優(yōu)點(diǎn):
1、它是一組相同的MyISAM表,可以用作一個(gè)表。記憶因此得以保存。
2、它可以對(duì)單個(gè)表執(zhí)行最有效的修復(fù),而不是修復(fù)通過(guò)合并這些單個(gè)表而形成的單個(gè)大表。
3、與MyISAM表不同,合并表不受操作系統(tǒng)文件大小的限制。
缺點(diǎn):
1、只有相同的MyISAM表才能用于合并。
2、如果MERGE表是非臨時(shí)的,則合并表必須是非臨時(shí)的。如果 MERGE表是臨時(shí)的,MyISAM表可以是臨時(shí)表和非臨時(shí)表的混合。
3、某些MyISAM功能在MERGE表中不可用。
五、MEMORY:它被認(rèn)為是通常用于在內(nèi)存中創(chuàng)建臨時(shí)表(也稱為 HEAP)的最快引擎。因此,當(dāng)數(shù)據(jù)庫(kù)重新啟動(dòng)時(shí),數(shù)據(jù)會(huì)丟失。它是非事務(wù)性的。它對(duì)于快速查找參考資料和其他識(shí)別數(shù)據(jù)很有用。它將所有數(shù)據(jù)存儲(chǔ)在RAM中以便更快地訪問(wèn),而不是將數(shù)據(jù)存儲(chǔ)在磁盤中。它廣泛用于表中數(shù)據(jù)的只讀緩存或臨時(shí)使用。
特征:
1、它不會(huì)在磁盤上創(chuàng)建任何文件。
2、MEMORY表不能包含BLOB或TEXT列。
3、支持AUTO_INCREMENT列。
4、VARCHAR使用固定長(zhǎng)度存儲(chǔ),即它使用固定長(zhǎng)度的行存儲(chǔ)格式。
優(yōu)點(diǎn):
1、數(shù)據(jù)被加密,通過(guò)加密功能在服務(wù)器中實(shí)現(xiàn)。
2、支持B樹(shù)索引。
3、為客戶端之間的低爭(zhēng)用提供低級(jí)鎖定和多線程操作。
缺點(diǎn):
1、MEMORY表不能分區(qū)。
2、如果從MEMORY表中刪除單個(gè)行,則無(wú)法回收內(nèi)存。
六、SEQUENCE:它是用于創(chuàng)建具有給定初始值、結(jié)束值和增量值的正整數(shù)的升序或降序序列的事務(wù)引擎。它是只讀的并且支持XA。
特征:
與 MEMORY 數(shù)據(jù)庫(kù)引擎一樣,它不會(huì)在磁盤上創(chuàng)建任何文件。
它會(huì)在我們需要時(shí)自動(dòng)創(chuàng)建虛擬表。無(wú)法顯式創(chuàng)建 SEQUENCE 表。
該引擎對(duì)連接和子查詢很有用。
優(yōu)點(diǎn):
1、SEQUENCE引擎未綁定到表。因此,我們也可以將它們用于任何其他目的。
2表格實(shí)施的靈活性。
缺點(diǎn):
1、AUTO_INCREMENT 功能需要額外編程,默認(rèn)情況下在引擎中不可用。
2、多個(gè)并行會(huì)話處于活動(dòng)狀態(tài)時(shí)出現(xiàn)并發(fā)問(wèn)題。
以上是MySQL數(shù)據(jù)庫(kù)引擎不同類型的介紹,希望能幫助到大家參考!
審核編輯:湯梓紅
-
SQL
+關(guān)注
關(guān)注
1文章
779瀏覽量
44704 -
數(shù)據(jù)庫(kù)
+關(guān)注
關(guān)注
7文章
3884瀏覽量
65568 -
MySQL
+關(guān)注
關(guān)注
1文章
840瀏覽量
27331
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
工業(yè)智能網(wǎng)關(guān)采集能耗數(shù)據(jù)對(duì)接到MySQL數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)——MySQL數(shù)據(jù)庫(kù)誤刪除表記錄的數(shù)據(jù)恢復(fù)案例

從Delphi、C++ Builder和Lazarus連接到MySQL數(shù)據(jù)庫(kù)

適用于MySQL和MariaDB的Python連接器:可靠的MySQL數(shù)據(jù)連接器和數(shù)據(jù)庫(kù)

分布式云化數(shù)據(jù)庫(kù)有哪些類型
MySQL數(shù)據(jù)庫(kù)的安裝

云數(shù)據(jù)庫(kù)是哪種數(shù)據(jù)庫(kù)類型?
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—Mysql數(shù)據(jù)庫(kù)表記錄丟失的數(shù)據(jù)恢復(fù)流程

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—MYSQL數(shù)據(jù)庫(kù)ibdata1文件損壞的數(shù)據(jù)恢復(fù)案例
香港云服務(wù)器怎么部署MySQL數(shù)據(jù)庫(kù)?
數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—通過(guò)拼接數(shù)據(jù)庫(kù)碎片恢復(fù)SQLserver數(shù)據(jù)庫(kù)

恒訊科技分析:云數(shù)據(jù)庫(kù)mysql有何優(yōu)缺點(diǎn)?

數(shù)據(jù)庫(kù)數(shù)據(jù)恢復(fù)—SQL Server數(shù)據(jù)庫(kù)出現(xiàn)823錯(cuò)誤的數(shù)據(jù)恢復(fù)案例

評(píng)論