MySQL提供了各種資料庫引擎來達到不同的應用,例如某些應用需要保證交易成功,有的則要求快速的運算能力,而這裡所介紹的TokuDB,則可滿足有大量插入要求及有效縮小資料庫容量的需求。
就這兩種資料庫壓縮比率而言,利用TokuDB類型所需的資料容量約比使用InnoDB類型減少一半的容量。
在比較完資料庫的壓縮比率後,接著測試在插入動作上的效能表現。測試所用的MySQL設定(/etc/my.cnf)如圖7所示。
|
▲圖7 測試所用的MySQL設定。 |
首先,測試TokuDB型態的Insert(插入)效能,執行指令的詳細內容如圖8所示,而其中所使用的參數分別說明如下:
|
▲圖8 測試TokuDB型態的插入效能。 |
--oltp-test-mode=simple:採用簡單的存取來測試
--max-time:設定要執行測試持續的時間
--mysql-user:設定資料庫使用者的帳號
--mysql-password:設定資料庫使用者的密碼
run:執行測試工作
至於最後的執行結果,則如圖9所示。
|
▲圖9 執行後所顯示的結果畫面。 |
在此取用平均數據來評估效能。接下來,針對InnoDB的插入效能進行測試,相關執行指令如圖10所示。
|
▲圖10 針對InnoDB的插入效能進行測試。 |
執行相關指令後,輸出結果如圖11所示。
|
▲圖11 針對InnoDB插入效能的測試結果。 |
由上述的簡單測試結果來看,TokuDB的插入效能遠高於InnoDB的插入效能。但就TokuDB官方網站所述,TokuDB在其他的資料庫動作如查詢(Select)或更新(Update),並未有特別的表現。
結語
「工欲善其事,必先利其器」,對於資料庫的運用也是如此。以MySQL為例,它提供了不同的資料庫引擎來滿足不同的應用,如果需要嚴謹之保證交易成功的機制,即可選用InnoDB型態。但如果要求的是快速的運算能力且預期資料量並不大的話,也可考慮使用Memory型態。而本文中所介紹的TokuDB型態,就適用於有大量的插入要求及有效縮小資料庫容量的需求。
<本文作者:吳惠麟,多年資安經驗,喜好利用開源碼建構相關解決方案,著有「資訊安全原理與實驗」等書。>