MariaDB數據庫存儲引擎詳解資料_第1頁
MariaDB數據庫存儲引擎詳解資料_第2頁
MariaDB數據庫存儲引擎詳解資料_第3頁
MariaDB數據庫存儲引擎詳解資料_第4頁
MariaDB數據庫存儲引擎詳解資料_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

MariaDB數據庫存儲引擎詳解在看MariaDB的存儲引擎之前,可以先了解 MySQL存儲引擎。MySQL常用的存儲引擎 :MyISAM 存儲引擎:是 MySQL的默認存儲引擎。 MyISAM 不支持事務、也不支持外鍵,但其訪問速度快,對事務完整性沒有要求。MyISAM 表還支持 3中不同的存儲格式:靜態表動態表壓縮表靜態表是默認的存儲格式,靜態表中的字段都是非變長的字段,優點是:存儲非常迅速,容易緩存,出現故障容易恢復;缺點是:占用的空間通常比動態表多。(注意:在存儲時,列的寬度不足時,用空格補足,當時在訪問的時候并不會得到這些空格)動態表的字段是變長的,優點是:占用的空間相對較少,但是頻繁地更新刪除記錄會產生碎片,需要定期改善性能,并且出現故障的時候恢復相對比較困難。壓縮表占用磁盤空間小,每個記錄是被單獨壓縮的,所以只有非常小的訪問開支。MyISAM 表存儲為三個文件: .frm文件存儲表定義。數據文件的擴展名為 .MYD(MYData) 。索引文件的擴展名是 .MYI(MYIndex)InnoDB存儲引擎:提供了具有提交、回滾和崩潰恢復能力的事務安全。但是比起 MyISAM存儲引擎,InnoDB寫的處理效率差一些并且會占用更多的磁盤空間以保留數據和索引。MEMORY(heap)存儲引擎:memory實際是heap的替代品。使用存在內存中的內容來創建表。每個MEMORY 表只實際對應一個磁盤文件 (只包含表定義 )。優點:MEMORY 類型的表訪問非常得快,因為它的數據是放在內存中的,并且默認使用HASH索引缺點:一旦服務關閉,表中的數據就會丟失掉。其只支持表鎖,并發性能較差 ,并且不支持TEXT和BLOB列類型.存儲變長字段( varchar)時是按照定常字段( char)的方式進行的,因此會浪費內存MERGE(mrg_myisam)存儲引擎:是一組MyISAM 表的組合,這些 MyISAM 表必須結構完全相同。MERGE表本身沒有數據,類似于一個視圖.對MERGE類型的表進行查詢、更新、除的操作,就是對內部的MyISAM表進行的。似乎看到分區表的影子,但完全是兩種不同的東西.

刪官網說明archive存儲引擎:這種類型只支持 select和 insert語句,而且不支持索引。非常適合存儲大量的獨立的作為歷史記錄的數據。 Archive擁有高效的插入速度,但其對查詢的支持相對較差常,應用于日志記錄和聚合分析方面。Federated:將不同的Mysql服務器聯合起來,邏輯上組成一個完整的數據庫。非常適合分布式應用CSV:個.CSV

邏輯上由逗號分割數據的存儲引擎。它會在數據庫子目錄里為每個數據表創建一文件。這是一種普通文本文件,每個數據行占用一個文本行。 CSV存儲引擎不支持索引。BlackHole :黑洞引擎,寫入的任何數據都會消失,一般用于記錄 binlog做復制的中繼MYSQL 中的部分存儲引擎的特性 :AttributeMyISAMHeapBDBInnoDBTransactions(支持事務)NoNoYesYesLockgranularity(鎖粒度)TableTablePage(8KB)RowStorage(存儲)SplitfilesIn-memorySinglefileperTablespace(s)tableIsolationlevels(隔離級別)NoneNoneReadcommittedAllPortableformat(可移植性)YesN/ANoYesReferentialintegrity(參照完整性,似乎是對外NoNoNoYes鍵的支持)PrimarykeywithdataNoNoYesYesMySQLcachesdatarecordsNoYesYesYesAvailability(支持的版本)AllAllversionsMySQL-MaxAllVersionsversionsMariaDB與MySQL 相比較MariaDB 提供以下特性:XtraDB

替換

InnoDB(在

MariaDB

中使用

InnoDB

等同于

XtraDB),XtraDB

Percona開發維護的

InnoDB

威力加強版,整合

Google、Facebook

等公司和

MySQL

社區的補丁。XtraDB

存儲引擎是完全的向下兼容,在

MariaDB

中,XtraDB

存儲引擎被標識為"ENGINE=InnoDB"

,這個與

InnoDB

是一樣的,所以你可以直接用

XtraDB

替換掉

InnoDB而不會產生任何問題Aria 存儲引擎和 Sphinx存儲引擎基于 GeleraCluster的MariaDB 集群方案多主復制(將在 MariaDB10.0 實現,由淘寶貢獻)Cassandra存儲引擎(將在 MariaDB10.0 實現),MariaDB 更強的地方在于:Aria(原名Maria) 存儲引擎Aria 存儲引擎是默認被編譯進 MariaDB5.1里的,并且在mysqld啟動的時候就要求同時啟動 .另外,內部的磁盤表是 Aria表格式而不是 MyISAM 表格式.這將使某些 GROUP BY和DISTINCT 請求速度更快,因為Aria有比MyISAM 更好的緩沖機制 .包含Aria是MariaDB5.1和MySQL5.1之間的一個不同.TRANSACTIONAL=0|1:Transactional meanscrash-safeforAriaPAGE_CHECKSUM=0|1:Ifindexand datashouldusepagechecksumsforextrasafety.TABLE_CHECKSUM=0|1:Same asCHECKSUMinMySQL5.1ROW_FORMAT=PAGE:Thenewcacheable rowformatforAriatables.DefaultrowformatforAriatablesandonlyrowformatthatcanbeusedifTRANSACTIONAL=1.ToemulateMyISAM,useROW_FORMAT=FIXEDorROW_FORMAT=DYNAMICCHECKSUMTABLEnowignoresvaluesinNULLfields.This makesCHECKSUMTABLEfasterandfixessomecaseswheresametabledefinitioncouldgivedifferentchecksumvaluesdependingonrowformat.ThedisadvantageisthatthevalueisnowdifferentcomparedtootherMySQLinstallations.ThenewchecksumcalculationisfixedforalltableenginesthatusesthedefaultwaytocalculateandMyISAMwhichdoesthecalculationinternally.Note:OldMyISAMtableswithinternalchecksumwillreturnthesamechecksumasbefore.TofixthemtocalculateaccordingtonewrulesyouhavetodoanALTERTABLE.Youcanusetheoldwaystocalculatechecksumsbyusingtheoption--oldtomysqldorsetthesystemvariable'@@old'to1whenyoudoCHECKSUMTABLE...EXTENDED;AtstartupAriawillchecktheArialogsandautomaticallyifmysqldwasnottakendowncorrectly.

recoverthetablesfromlastcheckpointPBXT但從

是MariaDBMariaDB5.5

附帶的一種存儲引擎,開始就不再提供 PBXT

PBXT 在MariaDB 的5.1/5.2/5.3存儲引擎,而且以后也將不再提供。

版本中存在,原因是PBXT已經不再繼續開發了,當然,在MariaDB的源碼發行中還將包含它的源碼,但你需要自行構建才能使用。PerconaXtraDB 是InnoDB 存儲引擎的增強版,被設計用來更好的使用更新計算機硬件系統的性能,同時還包含有一些在高性能環境下的新特性。XtraDB

存儲引擎是完全的向下兼容,在

MariaDB

中,XtraDB

存儲引擎被標識為"ENGINE=InnoDB"

,這個與

InnoDB

是一樣的,所以你可以直接用

XtraDB

替換掉InnoDB

而不會產生任何問題。PerconaXtraDB 包含有所有 InnoDB's 健壯性,可依賴的 ACID 兼容設計和高級MVCC 架構。XtraDB 在InnoDB 的堅實基礎上構建, 使XtraDB 具有更多的特性, 更好調用,更多的參數指標和更多的擴展。從實踐的角度來看,XtraDB被設計用來在多核心的條件下更有效的使用內存和更加方便,更加可用。新的特性被用來降低 InnoDB 的局限性。MariaDB 對存儲引擎新特性的選擇基于用戶的需求和現實環境中的真實需求。FederatedX存儲引擎 分布式存儲SphinxSE存儲引擎 用于全文檢索官網介紹更快的復制查詢處理線程池更少的警告和 bug運行速度更快多的 Extensions(Moreindexparts,newstartupoptionsetc)更好的功能測試數據表消除慢查詢日志的擴展統計支持對 Unicode的排序MariaDB 存儲引擎小結引擎引擎優點缺點適用場景問題思考Aria1寫入的效率較XtraDB支持事務差需要事務支持的生產環2占用更多境的存儲空間1.和單機相比的讀寫效率如FederatedX支持分布式需要使用分布式系統的何?系統情況2.如某個RDBMS故障會發生什么?支持全文檢需要全文檢索的情景SphinxSE使用前要單獨安索裝可以創建Aria表再通過觸發1.重啟后數據清器定入memory表MEMORY讀寫速度快空使用讀頻繁的基礎代碼aria表負責更2.占用內存表新,memory表負責讀取空間重啟后通過aria表初始化memory表如:將數據進行分表存儲感覺只是在使用的時候方便合并多個同1.執行效率沒有(表的數并沒有帶來效率的提提升量隨時間增長)又升MERGE(mrg_myisam)構表進行操2.本身沒有需要對這些表約束完全由基礎表控作任何約束進行聚合操作,這制,這樣會在多個表中時可以使用merge產生重復數據1.只支持插入和適用于日志類的,只插archive插入速度非查找入不修改常快2.不支持索且查詢較少的數引據.CSVBlackHole官網的一些建議 :XtradbandInnoDBisagoodgeneraltransactionstorageengineandusuallythebestchoiceifunsure.--Xtradband InnoDB是一種很好的通用事務存儲引擎 ,在無法確定如何選擇時 ,它也許就是一種最佳的選擇MyISAMandAriahaveasmallfootprintandallow foreasycopybetweensystems.MyISAMisMySQL'soldeststorage engine,whileAriaisMariaDB'smoremodernimprovement.--MyISAMandAria占用的資源比較小,兩者是兼容的,可以很容易的在這兩個系統間進行遷移.MyISAM是mysql最古老的存儲引擎,而Aria是MariaDB對它的更先進的改進.TokuDBisatransactionalstorageenginewhichisoptimizedforworkloadsthatdonotfitmemory,andprovidesagoodcompressionratio.MEMORYdoesnotwritedataon-disk(allrowsareloston crash)andisbest-usedforread-onlycachesofdatafromother tables,orfortemporaryworkareas.--MEMORY 不寫數據到硬盤中 (意味著重啟將丟失 ),最適用于緩存其它表中的數據用于只讀,或者用于臨時工作區TheArchivestorageengineis,unsurprisingly,best usedforarchiving.--Archive顧名思義最適用于存檔類的數據CONNECTallowsaccesstodifferentkindsoftextfilesand remoteresourcesasiftheywereregularMariaDBtables.SphinxSEis

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論