TokuDB vs Innodb 基準測試對比

2022-08-10 19:18:21 字數 2320 閱讀 1610

隨著業務的發展以及mysql儲存資料量的越來越大,很多超大表不僅僅儲存變的不易,維護也變得越來越困難,特別是頻繁的ddl操作讓運維變得痛苦不堪。當然表拆分可以解決類似的問題,但是對乙個穩定的系統來說,表拆分對業務的影響(表」路由「或統計等)有時可能無法接受,因此迫切需要一款合適的儲存引擎來解決類似的問題,技術圈裡近來一直在討論2013開源的一款tokudb儲存引擎,於是正好拿來進行了一系列的對比測試,看是否可以作為乙個解決的備用方案。

硬體及引數配置說明

tokudb傳說中牛叉的特性

3,超高壓縮比,最高25倍的壓縮比

4,乙個表可以包含多個聚簇索引

5,完全支援acid事物的四大特性

online ddl對比

通過對比可見:

1, 在字段的修改方面tokudb有非常明顯的優勢,這大大方便了對大表的維護工作

2,因為tokudb索引檔案獨立於資料檔案,因此tokudb刪除索引的同時會釋放表空間

儲存空間對比(該測試表記錄 2076884 )

表結構:

create table `toku` (

`pid` varchar(32) not null default '',

`createtime` datetime not null,

`updatetimes` datetime not null,

`user_id` bigint(20) not null,

`homework_id` varchar(255) default null,

`complete_practice` int(11) not null default '0',

`note` varchar(257) not null default '',

`clazz_id` bigint(20) not null default '0',

`score` int(11) not null default '0',

`note_checkeds` bit(1) not null default b'0',

primary key (`pid`)

)

通過上圖可見innodb和tokudb儲存空間的相差大概7倍,即tokudb大大節省了儲存空間。

響應時間對比

從原理上來說tokudb是壓縮儲存,故響應時間上肯定要比innodb要慢,通過上圖可見tokudb的平均響應時間大概是innodb的2倍左右,不過按tokudb的適用場景(儲存非熱點資料)來看著這算不上什麼缺點。

同理可以參考:

qps及tps的對比

通過上述兩個圖的對比可見:tokudb 的qps和tps 平均大概是innodb的一半左右,當然tokudb的適用場景並不是高併發場景,該測試只是做乙個對比。

總結:tokudb優點

1,online ddl 非常給力,特別是對字段的修改非常快

2,壓縮比非常高通常都能達到7,8倍的壓縮比

3,完全支援acid事物的四大特性

tokudb缺點

1,響應時間相對較長

2,online ddl 對text,blob等型別的字段不適用

3,沒有合適的備份工具,只能通過mysqldump進行邏輯備份

建議適用場景:

1,訪問頻率不高的資料或歷史資料歸檔

2,表非常大並且時不時還需要進行ddl操作

Optimized Purchasing基礎知識

pr的三要素 物料 數量 採購日期 日期是會影響價錢的 blanket po fo框架訂單。a 成本中心,i 限制 專案的限制標籤 miro支票不管數量,從帳戶分配輸入金額。產生pr三種 me51n,me25,mrp 產生po四種 me21n,me25,me57,me59n evo 物料管理 採購 ...

Phabricator Arcanist基本用法

git clone git git clone git 獲取到arcanist的原始碼後,進行相關配置 開啟.bash profile open e bash profile在環境變數中新增 export path path somewhere arcanist bin 命令列中輸入arc命令檢視是...

HttpServletResponse基本功能

request是請求物件,而response是響應物件。response物件的功能分為以下四種 設定響應頭資訊 addheader refresh 5 url x 傳送狀態碼 senderror 404 設定響應正文 getwriter print fdsfdsa 重定向 sendredirect ...