Mysql存儲(chǔ)引擎特性總結(jié)
幾個(gè)常用存儲(chǔ)引擎的特點(diǎn)
下面我們重點(diǎn)介紹幾種常用的存儲(chǔ)引擎并對(duì)比各個(gè)存儲(chǔ)引擎之間的區(qū)別和推薦使用方式。
特點(diǎn) | Myisam | BDB | Memory | InnoDB | Archive |
---|---|---|---|---|---|
存儲(chǔ)限制 | 沒(méi)有 | 沒(méi)有 | 有 | 64TB | 沒(méi)有 |
事務(wù)安全 | 支持 | 支持 | |||
鎖機(jī)制 | 表鎖 | 頁(yè)鎖 | 表鎖 | 行鎖 | 行鎖 |
B樹(shù)索引 | 支持 | 支持 | 支持 | 支持 | |
哈希索引 | 支持 | 支持 | |||
全文索引 | 支持 | ||||
集群索引 | 支持 | ||||
數(shù)據(jù)緩存 | 支持 | 支持 | |||
索引緩存 | 支持 | 支持 | 支持 | ||
數(shù)據(jù)可壓縮 | 支持 | 支持 | |||
空間使用 | 低 | 低 | N/A | 高 | 非常低 |
內(nèi)存使用 | 低 | 低 | 中等 | 高 | 低 |
批量插入的速度 | 高 | 高 | 高 | 低 | 非常高 |
支持外鍵 | 支持 |
最常使用的2種存儲(chǔ)引擎:
•Myisam是Mysql的默認(rèn)存儲(chǔ)引擎。當(dāng)create創(chuàng)建新表時(shí),未指定新表的存儲(chǔ)引擎時(shí),默認(rèn)使用Myisam。每個(gè)MyISAM在磁盤(pán)上存儲(chǔ)成三個(gè)文件。文件名都和表名相同,擴(kuò)展名分別是.frm(存儲(chǔ)表定義)、.MYD (MYData,存儲(chǔ)數(shù)據(jù))、.MYI (MYIndex,存儲(chǔ)索引)。數(shù)據(jù)文件和索引文件可以放置在不同的目錄,平均分布io,獲得更快的速度。
•InnoDB存儲(chǔ)引擎提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全。但是對(duì)比Myisam的存儲(chǔ)引擎,InnoDB寫(xiě)的處理效率差一些并且會(huì)占用更多的磁盤(pán)空間以保留數(shù)據(jù)和索引。
如何選擇合適的存儲(chǔ)引擎
選擇標(biāo)準(zhǔn):根據(jù)應(yīng)用特點(diǎn)選擇合適的存儲(chǔ)引擎,對(duì)于復(fù)雜的應(yīng)用系統(tǒng)可以根據(jù)實(shí)際情況選擇多種存儲(chǔ)引擎進(jìn)行組合。
下面是常用存儲(chǔ)引擎的適用環(huán)境:
1.MyISAM:默認(rèn)的MySQL插件式存儲(chǔ)引擎,它是在Web、數(shù)據(jù)倉(cāng)儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一
2.InnoDB:用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括ACID事務(wù)支持。
3.Memory:將所有數(shù)據(jù)保存在RAM中,在需要快速查找引用和其他類(lèi)似數(shù)據(jù)的環(huán)境下,可提供極快的訪問(wèn)。
4.Merge:允許MySQL DBA或開(kāi)發(fā)人員將一系列等同的MyISAM表以邏輯方式組合在一起,并作為1個(gè)對(duì)象引用它們。對(duì)于諸如數(shù)據(jù)倉(cāng)儲(chǔ)等VLDB環(huán)境十分適合。
相關(guān)文章
mysql installer web community 5.7.21.0.msi安裝圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql installer web community 5.7.21.0.msi,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決(can't?not?create?table)
這篇文章主要介紹了mysql創(chuàng)建外鍵報(bào)錯(cuò)的原因及解決方案(can't?not?create?table),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09探討:MySQL中如何查詢當(dāng)前正在運(yùn)行的SQL語(yǔ)句
本篇文章是對(duì)在MySQL中如何查詢當(dāng)前正在運(yùn)行的SQL語(yǔ)句進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MySQL 如何查詢 JSON 數(shù)組是否包含特定的值
本文給大家介紹MySQL 如何查詢 JSON 數(shù)組是否包含特定的值,假設(shè)定義了一張表 School,其中字段 stages 為 JSON 類(lèi)型,本文通過(guò)實(shí)例代碼給大家詳細(xì)講解,感興趣的朋友一起看看吧2023-11-11MySQL優(yōu)化總結(jié)-查詢總條數(shù)
這篇文章主要介紹了MySQL優(yōu)化總結(jié)-查詢總條數(shù)的相關(guān)內(nèi)容,文中進(jìn)行簡(jiǎn)單的測(cè)試對(duì)比,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10MySQL觸發(fā)器 Update觸發(fā)Insert失敗
這篇文章主要介紹了MySQL觸發(fā)器 Update觸發(fā)Insert失敗 的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07