MySQL官方存儲引擎

存儲引擎是為不同的表類型處理 SQL 操作的 MySQL 組件。InnoDB 是默認(rèn)的、最通用的存儲引擎,也是官方推薦使用的存儲引擎,除非一些特定案例。MySql 5.6 中的 CREATE TABLE 語句創(chuàng)建的表的存儲引擎默認(rèn)就是 InnoDB。

創(chuàng)新互聯(lián)公司專注于固始網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供固始營銷型網(wǎng)站建設(shè),固始網(wǎng)站制作、固始網(wǎng)頁設(shè)計、固始網(wǎng)站官網(wǎng)定制、小程序開發(fā)服務(wù),打造固始網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供固始網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

MySql 服務(wù)器使用的是一個可插拔存儲引擎架構(gòu),它能夠在運行的時候動態(tài)加載或者卸載這些存儲引擎。

可以使用 SHOW ENGINES 語句來查看你的 MySql 服務(wù)器所支持的存儲引擎。Support 列里的值指示出是否一個引擎可以被你使用:YES、NO 以及 DEFAULT 值分別表示某存儲引擎是可用、不可用、可用并且是當(dāng)前默認(rèn)的存儲引擎。

 

MySql 5.6 所支持的存儲引擎

·         InnoDB:MySql 5.6 版本默認(rèn)的存儲引擎。InnoDB 是一個事務(wù)安全的存儲引擎,它具備提交、回滾以及崩潰恢復(fù)的功能以保護(hù)用戶數(shù)據(jù)。InnoDB 的行級別鎖定以及 Oracle 風(fēng)格的一致性無鎖讀提升了它的多用戶并發(fā)數(shù)以及性能。InnoDB 將用戶數(shù)據(jù)存儲在聚集索引中以減少基于主鍵的普通查詢所帶來的 I/O 開銷。為了保證數(shù)據(jù)的完整性,InnoDB 還支持外鍵約束。

·         MyISAM:表級別的鎖定限制了它在讀寫負(fù)載方面的性能,因此它經(jīng)常應(yīng)用于只讀或者以讀為主的數(shù)據(jù)場景。

·         Memory:在內(nèi)存中存儲所有數(shù)據(jù),應(yīng)用于對非關(guān)鍵數(shù)據(jù)由快速查找的場景。Memory 引擎曾被稱為 HEAP 引擎。它的使用案例正在減少:InnoDB 的內(nèi)存緩沖區(qū)為將大部分或全部數(shù)據(jù)保持在內(nèi)存提供了一個通用并耐用的方式,NDBCLUSTER 為大分布式數(shù)據(jù)集提供了快速的 key-value 訪問。

·         CSV:它的表真的是以逗號分隔的文本文件。CSV 表允許你以 CSV 格式導(dǎo)入導(dǎo)出數(shù)據(jù),以相同的讀和寫的格式和腳本和應(yīng)用交互數(shù)據(jù)。由于 CSV 表沒有索引,你最好是在普通操作中將數(shù)據(jù)放在 InnoDB 表里,只有在導(dǎo)入或?qū)С鲭A段使用一下 CSV 表。

·         Archive:黑洞存儲引擎,類似于 Unix 的 /dev/null,Archive 只接收但卻并不保存數(shù)據(jù)。對這種引擎的表的查詢常常返回一個空集。這種表可以應(yīng)用于 DML 語句需要發(fā)送到從服務(wù)器,但主服務(wù)器并不會保留這種數(shù)據(jù)的備份的主從配置中。

·         NDB:(又名 NDBCLUSTER)——這種集群數(shù)據(jù)引擎尤其適合于需要最高程度的正常運行時間和可用性的應(yīng)用。注意:NDB 存儲引擎在標(biāo)準(zhǔn) MySql 5.6 版本里并不被支持。目前能夠支持 MySql 集群的版本有:基于 MySql 5.1 的 MySQL Cluster NDB 7.1;基于 MySql 5.5 的 MySQL Cluster NDB 7.2;基于 MySql 5.6 的 MySQL Cluster NDB 7.3。同樣基于 MySql 5.6 的 MySQL Cluster NDB 7.4 目前正處于研發(fā)階段。

·         Merge:允許 MySql DBA 或開發(fā)者將一系列相同的 MyISAM 表進(jìn)行分組,并把它們作為一個對象進(jìn)行引用。適用于超大規(guī)模數(shù)據(jù)場景,如數(shù)據(jù)倉庫。

·         Federated:提供了從多個物理機(jī)上聯(lián)接不同的 MySql 服務(wù)器來創(chuàng)建一個邏輯數(shù)據(jù)庫的能力。適用于分布式或者數(shù)據(jù)市場的場景。

·         Example:這種存儲引擎用以保存闡明如何開始寫新的存儲引擎的 MySql 源碼的例子。它主要針對于有興趣的開發(fā)人員。這種存儲引擎就是一個啥事也不做的 "存根"。你可以使用這種引擎創(chuàng)建表,但是你無法向其保存任何數(shù)據(jù),也無法從它們檢索任何索引。

對于整臺服務(wù)器或整個 schema 你并不受限于使用同一種存儲引擎。你可以為所有表定義存儲引擎。比如,一個應(yīng)用可能以 InnoDB 表為主,輔以一個 CSV 表用以導(dǎo)出數(shù)據(jù)到電子表格,少許 MEMORY 表用以臨時工作空間。

 

存儲引擎的選擇

MySql 提供的這些存儲引擎為不同的應(yīng)用案例進(jìn)行設(shè)計。下表為 MySql 提供的存儲引擎做了一個概述:

存儲引擎特性總結(jié)

特性

MyISAM

Memory

InnoDB

Archive

NDB

存儲上限

NDB

RAM

64TB

384EB

事務(wù)支持

鎖粒度

MVCC

地理空間數(shù)據(jù)類型支持

地理空間索引支持

B-tree索引

T-tree索引

Hash索引

全文檢索索引

聚集索引

數(shù)據(jù)緩存

N/A

索引緩存

N/A

數(shù)據(jù)壓縮

數(shù)據(jù)加密

支持?jǐn)?shù)據(jù)庫集群

支持主從

支持外鍵

備份/時間點恢復(fù)

支持查詢緩存

更新數(shù)據(jù)字典的統(tǒng)計

 

注意

·         InnoDB 在 MySQL 5.7.5 及以后的版本才支持地理空間索引

·         InnoDB 通過其自適應(yīng)哈希索引的特性內(nèi)置進(jìn)行哈希索引優(yōu)化

·         InnoDB 在 MySql 5.6.4 及以后版本才能支持 FULLTEXT 索引

·         MyISAM 只能在行壓縮格式時支持?jǐn)?shù)據(jù)壓縮。使用了行壓縮的 MyISAM 表只讀

·         InnoDB 表壓縮要求 InnoDB Barracuda 文件格式

·         MySql 的數(shù)據(jù)加密是由服務(wù)器的加密函數(shù)提供,并非存儲引擎

·         主從支持、備份/時間點恢復(fù)等功能也是由服務(wù)器提供,而并非存儲引擎

 

分享題目:MySQL官方存儲引擎
網(wǎng)站鏈接:http://bm7419.com/article40/jcieho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站用戶體驗、品牌網(wǎng)站建設(shè)、微信公眾號、服務(wù)器托管、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司