<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MariaDB存儲引擎簡介

          共 3077字,需瀏覽 7分鐘

           ·

          2021-05-22 06:43

          點擊關(guān)注,與你共同成長!



          MariaDB存儲引擎簡介

          存儲引擎簡述

          • 簡單說來,存儲引擎是數(shù)據(jù)庫管理系統(tǒng)用來從數(shù)據(jù)庫創(chuàng)建、讀取、更新數(shù)據(jù)的軟件模塊。

          • 負(fù)責(zé)提供數(shù)據(jù)實體儲存的算法

          • 提供數(shù)據(jù)文件與索引檔案的管理

          • MariaDB 采用 Plugin 方式動態(tài)加載/卸載 引擎模塊

          • 可透過外部安裝的方式添加新的 Storage Engine

          查詢指令:

          查看所有的已啟用的存儲引擎:show engines;

          查詢預(yù)設(shè)引擎:select @@global.storage_engine;

          查看所有的已啟用的存儲引擎

          簡單介紹幾個 MariaDB 的存儲引擎

          1、InnoDB/XtraDB

          • XtraDB 屬于 InnoDB 分支( Percona 負(fù)責(zé)維護),針對“效能與監(jiān)控”進行強化,兼容 InnoDB 引擎。MariaDB 10.1 采用 (MariaDB 10.1),但在 MariaDB 10.2 回歸 MySQL InnoDB 。

          • 支持 Trasaction/Savepoints 以及 XA Transaction。

          • 現(xiàn)代 IoT/BigData: 大量數(shù)據(jù)與快速寫入上出現(xiàn)瓶頸。

          2、MyISAM

          • MySQL/MariaDB 最早的預(yù)設(shè)引擎

          • 輕量化設(shè)計不支持交易(Trasaction)處理

          • 適合 read-heavy workload

          • 無事務(wù)無日志,因此檔案容易因其它因素而損毀

          • 過渡時期的 Big Data 處理方式

          3、Aria

          • 原名 Maria,MariaDB 5.1 導(dǎo)入

          • MariaDB 10.4 后 System Tables 全面改用 Aria

          • Crash Safe ,采用 log 進行 數(shù)據(jù)還原(data recovery)

          • 采用 page 提供更快速 不易產(chǎn)生 Fragment 的儲存算法

          • 建議改用 Aria 取代 MyISAM

          4、TokuDB

          • 由 Tokutek 負(fù)責(zé)開發(fā),MariaDB 5.5 納入此引擎模塊

          • 支持?jǐn)?shù)據(jù)壓縮(data compression)

          • 支持大型數(shù)據(jù)處理,速度快于 InnoDB

          • 適合高效能與寫密集型(write-intensive) 需求的應(yīng)用環(huán)境

          5、MyRocks

          • Facebook 所發(fā)展的數(shù)據(jù)儲存技術(shù)

          • MyRocks 是將 RocksDB 數(shù)據(jù)庫添加到 MariaDB 的存儲引擎。RocksDB 是一個 LSM 數(shù)據(jù)庫,具有很大的壓縮率,已針對閃存進行了優(yōu)化

          • 提供高效能的壓縮與 I/O 效能

          • 降低數(shù)據(jù)空間需求

          6、Connect

          • MariaDB 10.0 導(dǎo)入,透過 Connect Plugin 讓 MariaDB 連接不同的數(shù)據(jù)來源, 提供外部數(shù)據(jù)(MED: Management External Data)給 MariaDB Client

          • 標(biāo)準(zhǔn)規(guī)范: SQL/MED

          • 提供多種類型的數(shù)據(jù)連接服務(wù)

          • 定義 Wrapper Table 提供 Client 存取

          按用途選擇存儲引擎

          MariaDB 有幾十種存儲引擎,但并不一定都是最佳。官網(wǎng)有簡單針對各種用于,建議使用不同的引擎。大概如下:

          一般用途:

          • 在 MariaDB 10.1 之前,XtraDB 是大多數(shù)情況下的最佳選擇。它是 InnoDB 增強性能的分支,并且是 MariaDB 10.1 之前的默認(rèn)引擎。

          • InnoDB 是一個很好的常規(guī)事務(wù)存儲引擎。它是 MariaDB 10.2(以及 MySQL)的默認(rèn)存儲引擎。對于早期版本,XtraDB 是 InnoDB 的性能增強分支,通常是首選。

          • Aria 是 MariaDB 基于 MyISAM 上的更加現(xiàn)代改進,占用空間小,并且讓系統(tǒng)之間相互復(fù)制很簡單。

          • MyISAM 占用空間小,也可輕松在系統(tǒng)之間進行復(fù)制。MyISAM 是 MySQL 最古老的存儲引擎。但是除了解決遺留問題用途,通常沒有其它理由使用它。Aria 是 MariaDB 的更現(xiàn)代改進。

          縮放,分區(qū)(Scaling, Partitioning):

          如果想要拆分?jǐn)?shù)據(jù)庫并加載在幾個服務(wù)器上,或者優(yōu)化縮放,建議使用 Galera(一個同步多主集群)。

          • TokuDB 是一個事務(wù)性存儲引擎,它針對不適合內(nèi)存的工作負(fù)載進行了優(yōu)化,并提供了良好的壓縮比。

          • Spider 使用分區(qū)(partitioning)通過多個服務(wù)器提供數(shù)據(jù)分片(data sharding)。

          • ColumnStore 采用大規(guī)模并行分布式數(shù)據(jù)體系結(jié)構(gòu),專為大數(shù)據(jù)擴展而設(shè)計,可處理 PB 級別的數(shù)據(jù)。

          • MERGE 存儲引擎是一個相同 MyISAM 表的集合,所有表具有相同的列和索引信息。

          連接到其它數(shù)據(jù)源

          如果要使用的數(shù)據(jù)沒有存放到 MariaDB 數(shù)據(jù)庫,但可以通過以下的數(shù)據(jù)引擎去連接訪問。

          • CONNECT 允許訪問不同類型的文本文件和遠程資源,就像它們是常規(guī)的 MariaDB 表一樣。

          • CSV 存儲引擎可以讀取并附加到以 CSV(逗號分隔值)格式存儲的文件。然而,自從 MariaDB 10.0 以來,CONNECT 是一個更好的選擇,并且能夠更靈活地讀寫這樣的文件。

          • FederatedX 使用 libmysql 與遠程 RDBMS 數(shù)據(jù)源溝通。目前,由于 FederatedX 只使用 libmysql,它只能與另一個 MySQL RDBMS 通信。

          • CassandraSE 是一個允許訪問舊版本的 Apache Cassandra NoSQL DBMS 的存儲引擎。不過它是相對實驗性的,并且不再被積極開發(fā)。

          搜索優(yōu)化

          • SphinxSE 用作在遠程 Sphinx 數(shù)據(jù)庫服務(wù)器上運行語句的代理(主要用于高級全文搜索)。

          • Mroonga 使用列存儲提供快速的 CJK 就緒全文搜索。

          緩存,只讀

          • MEMORY 不會在磁盤上寫數(shù)據(jù)(崩潰時所有行都會丟失),并且最適合用于其它表中數(shù)據(jù)的只讀緩存或臨時工作區(qū)。借助默認(rèn)的 XtraDB 和其它具有良好緩存的存儲引擎,與過去相比,對該引擎的需求減少了。

          其它專用引擎

          • S3 存儲引擎是一個只讀存儲引擎,它將數(shù)據(jù)存儲在 amazons3 中。

          • Sequence 允許使用給定的起始值、結(jié)束值和增量創(chuàng)建數(shù)字(正整數(shù))的升序或降序序列,并在需要時自動創(chuàng)建虛擬的臨時表。

          • BLACKHOLE 存儲引擎接受數(shù)據(jù),但不存儲數(shù)據(jù),并始終返回空結(jié)果。這在復(fù)制環(huán)境中非常有用,例如,如果您希望在從機上運行復(fù)雜的篩選規(guī)則,而不會在主機上產(chǎn)生任何開銷。

          • OQGRAPH 允許處理層次結(jié)構(gòu)(樹結(jié)構(gòu))和復(fù)雜圖(在多個方向上有多個連接的節(jié)點)。

          總結(jié):

          關(guān)于 MariaDB 存儲引擎的一般性常規(guī)選擇(先不考慮拓展和集群),其實大體看來只有以下幾個

          • 一般使用:InnoDB

          • 快速存取,不使用事務(wù):Aria

          • 高壓縮和吞吐,需要降低數(shù)據(jù)空間占比:MyRocks 或 TokuDB 歸檔專用:Archive

          • 連接到其它文本或遠程數(shù)據(jù)源:CONNECT

          • 更多 MariaDB 的存儲引擎詳細,可參看官網(wǎng)

          https://mariadb.com/kb/en/storage-engines/



          張一鳴的自我修養(yǎng),每個職場人都該看一看!

          微服務(wù)究竟是“靈丹”還是“毒藥”?

          超經(jīng)典的 25 道 MyBatis 面試題!


          以上,便是今天的分享,希望大家喜歡,覺得內(nèi)容不錯的,歡迎「分享」「」或者點擊「在看」支持,謝謝各位。

          瀏覽 105
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲黄视频 | 精品人妻一区二区三区阅读全文 | 精品人妻无码一区二区出白浆潮喷 | 999综合色 | 国产上婬乱18一级毛 |