tpcc-mysqlによるMySQLのベンチマーク(tpcc-mysql對MySQL的基準測試)

データベースに対する負荷ツール、ベンチマークツールは世の中にたくさんあるのですが、単一テーブルに対する主キー検索しかしないものなど、CPUクロック勝負の比較的単純なものが多くを佔めているようです。

關於數據庫壓力的測試工具、世面上有很多的基準測試工具、不僅是對單一表的主鍵進行檢索等、單純的CPU時鐘勝負比較佔大多數。

 

そこで本日は、もう少し高度なベンチマーク仕様としてのTPC-Cと、MySQL向けの簡易実裝であるtpcc-mysqlをご紹介します。

今天,介紹一下稍微高級一點基準規格的tpc-c和麪向MySQL簡單實施的tpcc-mysql。

 

TPC-Cとは卸売業における註文・支払いなどの処理を擬似的に再現した業務モデルで、TPCという業界団體によって策定されたものです。

TPC-C是通過模擬批發業中訂單.支付等的處理再現業務模型、TPC是業界團體定製的產物

 

 

9種類のテーブルに対する5種類のトランザクションがミックスされており、そのうち註文処理のスループットを測定結果として利用します。

涵蓋了9個table、5種事務(transaction)、訂單處理的吞吐量作爲測定結果使用。

 

公式サイトで仕様書(PDF)が公開されています。

在官方網站上有公開的式樣書PDF。

 

テーブル定義は以下のようになっています。ちなみにこのER図はMySQL Workbenchで出力したものです。

table的定義如下,順便說一下這個ER圖是用MySQL Workbench輸出的。

f:id:sh2:20090211211130p:image

 

  • warehouse:倉庫です。倉庫表のレコード數は全體の規模を決めるスケールファクターとなっています。

  • warehouse表:倉庫表。倉庫表的記錄數是決定整體規模的比例因子

  • district:配送區域です。倉庫あたり10の配送區域が存在します。

  • district表:配送區域表。每個倉庫有10個配送區域。

  • customer:顧客です。配送區域あたり3,000の顧客が存在します。

  • customer表:顧客表。每個配送區域有3000名顧客。

  • hisotory:支払い履歴です。支払い履歴表は測定中にレコードが増えていきます。

  • hisotory表:支付記錄表。主要是往表裏insert支付記錄。

  • item:商品です。商品數は10萬種類で固定されています。

  • item表:商品表。固定10萬種類的商品數。

  • stock:在庫です。warehouse×10萬レコードあります。

  • stock表:庫存表。存在warehouse乘以10萬條記錄

  • orders:註文です。註文表は測定中にレコードが増えていきます。

  • orders表:訂單表。主要是往這個訂單表裏增加記錄。

  • order_line:註文明細です。一度の註文で平均10個の商品を発注します。

  • order_line表:訂單明細表。一個訂單平均10個商品。

  • new_orders:未配送の新規註文です。註文を受けるとINSERTされ、商品を配送するとDELETEされます。

  • new_orders表:未配送的新增訂單。新增訂單的insert及配送訂單的delete操作

  • 5種類のトランザクションは以下のようになっています。測定においてはこれら5種類のトランザクションをおよそ10:10:1:1:1でミックスします。

    以下是具體的5類事務。測量中這5類事務的比例爲10:10:1:1:1

    • new order:註文です。主に註文データのINSERTを行います。

    • 訂單,主要是往訂單表裏insert

    • payment:支払いです。主に貸借のUPDATEと履歴データのINSERTを行います。

    • 支付,主要是貸借的update和對支付記錄表進行的insert操作

    • order status:註文狀況の確認です。註文データのSELECTを行います。

    • 訂單狀態,訂單的狀態確認。主要對訂單表進行查詢。

    • delivery:配送です。新規註文のDELETEと註文データのフラグ更新を行います。

    • 配送,新增訂單的刪除及訂單表的flag更新。

    • stock level:在庫確認です。在庫データのSELECTを行います。

    • 庫存確認。庫存數據的查詢

       

       

      扛不住了.... 明天繼續

       

    TPC-Cの実裝はあまり公開されているものがなく、私の知る限りDBT-2とtpcc-mysqlしかないようです。またこれらはいずれもTPC-Cの仕様をかいつまんで実裝したものとなっており、全ての仕様を満たしてはいません。そのため測定結果はTPC-Cの公式スコアとは言えませんので、ご注意ください。

    TPC-Cの概要が分かったところで、早速tpcc-mysqlのセットアップをしていきましょう。tpcc-mysqlMySQLのコンサル會社であるPercona Inc.によって開発されたもので、launchpadでソースが公開されています。launchpadからのソース取得にはBazaarを使います。CentOS 5.2においてBazaarすら入っていない狀態からは、以下のようにしてインストールします。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章