MySQL提供了各種資料庫引擎來達到不同的應用,例如某些應用需要保證交易成功,有的則要求快速的運算能力,而這裡所介紹的TokuDB,則可滿足有大量插入要求及有效縮小資料庫容量的需求。
使用系統記憶體來當成資料庫表格的儲存空間,最大的好處是運算速度快,但由於記憶體揮發的特性,一旦系統關機,所有儲存在記憶體的資料庫表格紀錄也會隨之被抹除。而使用記憶體來儲存,另外還有一個很大的缺點,為其可儲存的容量遠小於以磁碟來儲存。
什麼是TokuDB
TokuDB是一種支援交易功能且具有高效能的插入(Insert)功能及高資料壓縮比的資料庫引擎,可與MySQL資料庫結合,提供特定的應用,通常適用於需要經常大量寫入的應用上。
接下來安裝TokuDB,在安裝之前,必須先安裝相關相依的程式庫套件,執行如下指令:
然後至網頁「https://github.com/Tokutek/tokudb-engine」取得TokuDB的資料庫引擎原始碼。
下載原始碼並解壓縮後,在原始碼的「scripts」目錄內可以發現一個名為make.mysql.bash程式,執行此程式就會自動下載已經支援TokuDB資料庫引擎的MySQL原始碼。
下載相關原始碼後,再以原始碼編譯的方式編譯即可,使用以下幾個指令(其中#為註解):
啟動成功後登入MySQL,可利用「show ENGINES;」指令來查看是否已成功安裝TokuDB資料庫引擎,如圖2所示。
|
▲圖2 查看是否已經安裝好TokuDB資料庫引擎。 |
成功安裝TokuDB後,繼續說明TokuDB所提供常用的組態說明,如上頁表2所示。
表2 TokuDB的常用組態
檢視系統測試效能
成功安裝TokuDB之後,將利用SysBench軟體來測試使用TokuDB資料庫引擎的表格與使用其他MySQL預設的資料庫引擎表格,在插入(Insert)效能與資料庫壓縮比率的比較。由於TokuDB與InnoDB均有支援交易功能,因此本文將針對這兩種資料庫引擎進行比較。
SysBench是開源碼社群中頗富盛名的壓力測試軟體,可用來測試主機上的檔案系統及記憶體的讀寫效能、CPU的運作效能。
除了上述傳統的效能測試項目外,SysBench更提供了資料庫的運作效能測試,目前支援測試MySQL、Oracle、PostgreSQL等相關著名的資料庫軟體。
SysBench測試資料庫的主要重點在於OLTP(On-Line Transaction Processing system,連線交易處理系統)的效能測試。
所謂OLTP,指的是一般傳統關聯式資料庫(Relational Database)的主要應用功能,其特色是當交易在進行時可針對交易資料進行即時處理,而非傳統的批次處理,例如MySQL就是一種著名的關聯式資料庫軟體。
所以測試OLTP效能的重點是,當使用者在提出一個交易要求,而後資料庫系統接收到該筆交易要求並完成運算,再回覆給使用者的整段時間。而SysBench即是藉著測量此段時間的長短來評估資料庫的效能好壞。
在了解SysBench的基本原理後,接下來安裝SysBench軟體,可至網址「https://github.com/akopytov/sysbench」取得最新版本(目前為版本0.5)。
下載解壓縮後,依序執行下列指令(#之後為註解):