TokuDB InnoDB MyISAM MySQL 資料庫 Log 日誌

提高MySQL效能及壓縮率 以TokuDB優化Log資料庫

2015-07-06
MySQL提供了各種資料庫引擎來達到不同的應用,例如某些應用需要保證交易成功,有的則要求快速的運算能力,而這裡所介紹的TokuDB,則可滿足有大量插入要求及有效縮小資料庫容量的需求。
編譯成功後,在SysBench原始碼中的「tests」目錄內有用來測試系統的腳本,以LUA語言實作,可用來測試檔案系統、記憶體或資料庫的效能,接著執行以下的指令,複製相關測試腳本:


安裝完成後,SysBench軟體提供了檔名為SysBench的主要執行檔供使用者進行測試。接著,繼續說明SysBench的使用方法。SysBench的語法如下所示:


相關參數的使用方法,以下個別加以說明:

--test:設定測試的對象。SysBench支援CPU、記憶體、檔案系統(fileio)、資料庫(OLTP)的效能。
-- test-options:針對測試的對象而必須另外設定的 相關組態,例如在測試資料庫的效能時,需指定測試的資料庫名稱、所使用的Socket名稱等資訊,相關設定組態如表3所示。

表3 相關設定組態

在說明過所使用的測試方法及重要的相關測試組態後,接下來繼續說明命令(Command)的用法,如表4所示。

表4 各種命令的用法

而命令(Command)所使用的命令組態說明,如表5所示。

表5 命令所使用的命令組態

安裝好SysBench軟體後,利用此軟體來測試TokuDB與InnoDB資料庫引擎的資料庫壓縮比率以及針對插入動作的效能比較。首先比較資料庫壓縮比率,在測試環境中,先建立名稱為dbtestTokuDB(存放TokuDB類型的資料庫表格)及dbtestInnoDB(存放InnoDB類型的資料庫表格)的資料庫表格,並且在相同的硬體環境下,比較這兩種的資料庫表格在插入效能及資料壓縮比率上的表現。

產生TokuDB資料庫表格

利用SysBench程式來產生測試用的資料庫表格紀錄,如下指令為在名為dbtestTokuDB的資料庫內,產生一個使用資料庫引擎類型為TokuDB的資料庫表格,並產生5百萬筆記錄,如圖3所示。


▲圖3 利用SysBench產生測試用的資料庫表格紀錄。

圖3中所使用的參數,分別說明如下:

--mysql-socket:設定MySQL資料庫軟體執行時使 用的Socket檔案。
--test:設定測試的方法。使用LUA程式語言所撰寫 的測試腳本,在此使用專為測試插入效能的insert.lua腳本。
--mysql-user:設定連接資料庫所採用的使用者名稱。
--mysql-password:設定連接資料庫所使用的密碼。
--mysql-db:設定資料庫名稱。
--oltp-table-size:設定要準備測試記錄的筆數,在 此為5百萬筆。
prepare:設定此指令是為了準備測試用資料,將會 在該資料庫下新建一個名稱為sbtest1的資料庫表格,內含5百萬筆紀錄。

執行完畢,可查看該資料庫所使用的檔案大小,如圖4所示。


▲圖4 查看該資料庫所使用的檔案大小。

以5百萬筆記錄而言,TokuDB所需的總容量約為700MB左右。

接下來繼續產生InnoDB型態的資料庫表格,如圖5所示,如下指令是為了在名稱為dbtestInnoDB的資料庫內產生一個使用資料庫引擎類型為InnoDB的資料庫表格,並產生5百萬筆紀錄。


▲圖5 產生一個使用資料庫引擎類型為InnoDB的資料庫表格。

執行相關指令之後,如圖6所示查看該資料庫所使用的檔案大小。


▲圖6 查看該資料庫所使用的檔案大小。

以5百萬筆記錄而言,InnoDB所需的總容量約為1.3GB。


追蹤我們Featrue us

本站使用cookie及相關技術分析來改善使用者體驗。瞭解更多

我知道了!