MySql 擴充套件儲存引擎

張衝andy發表於2017-03-25
                                                                                                                                MySql 擴充套件儲存引擎


下面介紹幾個列式儲存引擎(都有兩個版本:社群版、商業版):


一:TokuDB


TokuDB 是一個高效能、支援事務處理的 MySQL 和 MariaDB 的儲存引擎。TokuDB 的主要特點則是對高寫壓力的支援。


TokuDB v7 釋出了。
從該版本開始 TokuDB 宣佈開源,開源的社群版本提供全部功能和效能,無當機的列新增、刪除和重新命名,以及索引建立,簇集的第二主鍵。同時也提高了企業版本,包含額外的支援包和高階備份和恢復工具。


tokudb使用索引加快查詢速度,具有高擴充套件性,並支援hot scheme modification。


特點:
1.插入效能快20~80倍;
2.壓縮資料減少儲存空間;
3.資料量可以擴充套件到幾個TB;
4.不會產生索引碎片;
5.支援hot column addition , hot indexing, mvcc;


如何考慮使用:
1.如果要儲存blob,不要使用tokuDB,因為他的記錄不能太大;
2.如果記錄數過億,使用tokuDB;
3.如果注重update的效能,不要使用tokuDB,他沒有innodb快;
4.如果要儲存舊的記錄,使用tokuDB;
5.如果要縮小資料佔用的儲存空間,使用tokuDB;


二:Infobrigh (infobright 社群版只支援load data操作)


Infobright是開源的MySQL資料倉儲解決方案,引入了列儲存方案,高強度的資料壓縮,最佳化的統計計算(類似sum/avg/group by之類),


infobright 是基於mysql的,但不裝mysql亦可,因為它本身就自帶了一個。mysql可以粗分為邏輯層和物理儲存引擎,infobright主要實現的就是一個儲存引擎,但因為它自身儲存邏輯跟關係型資料庫根本不同,所以,它不能像InnoDB那樣直接作為外掛掛接到mysql,它的邏輯層是mysql的邏輯 層加上它自身的最佳化器。


1、高壓縮比率,平均壓縮比可達10:1,甚至可以達到40:1,我用infobright把3.1G的資料存成不足300M。


2、列儲存,即使資料量十分巨大,查詢速度也很快。用於資料倉儲,處理海量資料沒一套可不行。


3、不需要建索引,就避免了維護索引及索引隨著資料膨脹的問題。把每列資料分塊壓縮存放,每塊有知識網格節點記錄塊內的統計資訊,代替索引,加速搜 索。


4、單一臺伺服器可以高效地讀寫30T資料。具有可擴充套件性,這裡是指對於同樣的查詢,當資料量是10T時,它耗費的時間不應該比1T資料量時慢太 多,基本是一個數量級內。


三:InfiniDB


InfiniDB:InfiniDB Community Edition (社群版)提供一個可伸縮的分析型資料庫引擎,主要為資料倉儲、商業智慧、以及對實時性要求不嚴格的應用而開發。基於 MySQL 搭建。包括對查詢、事務處理以及大資料量載入的支援。目前使用者不是很多。




引擎選擇建議:


1. 首選Innodb

2. 其次推薦研究 TokuDB 、InfiniDB


  說明:自己總結與網路整理。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2136061/,如需轉載,請註明出處,否則將追究法律責任。

相關文章