BenchmarksqlMySQLのTPC-Cテスト
Benchmarksql Mysqls Tpc C Test
BenchmarkSQLのインストール構成
BenchmarkSQL postgresqlTPC-Cテスト
TPC-CテストのBenchmarkSQLオラクル
BenchmarksqlMySQLのTPC-Cテスト
I.はじめに
BenchmarkSQL自体はMySQLTPC-Cテストをサポートしていませんが、ソースコードを変更してMySQLサポートをテストできるようにすることができます。
次に、ソースコードを変更します
2.1、MySQLのタイプを追加します
ソースsrc / client / jTPCC.javaを変更して、処理のタイプが追加されましたmysql
117 if (iDB.equals('firebird'))
118 dbType = DB_FIREBIRD
119 else if (iDB.equals('oracle'))
120 dbType = DB_ORACLE
121 else if (iDB.equals('postgres'))
122 dbType = DB_POSTGRES
123 else if (iDB.equals('mysql'))
124 dbType = DB_UNKNOWN
125 else
126 {
127 log.error('unknown database type '' + iDB + ''')
128 return
129 }
2.2、SQLクエリはエイリアスを追加します
ソースコードsrc / client / jTPCCConnection.javaを変更し、ステートメントにエイリアスを追加し、ブランチSQlは、DB_POSTGRESをモデルにして、ブレークするエイリアスを追加します。
194 case jTPCCConfig.DB_POSTGRES:
195 stmtStockLevelSelectLow = dbConn.prepareStatement(
196 'SELECT count(*) AS low_stock FROM (' +
197 ' SELECT s_w_id, s_i_id, s_quantity ' +
198 ' FROM bmsql_stock ' +
199 ' WHERE s_w_id = ? AND s_quantity
200 ' SELECT ol_i_id ' +
201 ' FROM bmsql_district ' +
202 ' JOIN bmsql_order_line ON ol_w_id = d_w_id ' +
203 ' AND ol_d_id = d_id ' +
204 ' AND ol_o_id >= d_next_o_id - 20 ' +
205 ' AND ol_o_id
206 ' WHERE d_w_id = ? AND d_id = ? ' +
207 ' ) ' +
208 ' ) AS L')
209 break
210
211 default:
212 stmtStockLevelSelectLow = dbConn.prepareStatement(
213 'SELECT count(*) AS low_stock FROM (' +
214 ' SELECT s_w_id, s_i_id, s_quantity ' +
215 ' FROM bmsql_stock ' +
216 ' WHERE s_w_id = ? AND s_quantity
217 ' SELECT ol_i_id ' +
218 ' FROM bmsql_district ' +
219 ' JOIN bmsql_order_line ON ol_w_id = d_w_id ' +
220 ' AND ol_d_id = d_id ' +
221 ' AND ol_o_id >= d_next_o_id - 20 ' +
222 ' AND ol_o_id
223 ' WHERE d_w_id = ? AND d_id = ? ' +
224 ' ) ' +
225 ' ) AS L')
2.3、mysqlはプロファイルを作成しますprop.mysql
実行ディレクトリで、props.pgをprop.mysqlとしてコピーし、ファイルprop.mysqlを編集します。
db=mysql
driver=com.mysql.jdbc.Driver
conn=jdbc:mysql://192.168.30.136:3306/benchmarksql?useSSL=false
user=benchmarksql
password=benchmarksql
warehouses=1
loadWorkers=4
terminals=1
//To run specified transactions per terminal- runMins must equal zero
runTxnsPerTerminal=10
//To run for specified minutes- runTxnsPerTerminal must equal zero
runMins=0
//Number of total transactions per minute
limitTxnsPerMin=300
//Set to true to run in 4.x compatible mode. Set to false to use the
//entire configured database evenly.
terminalWarehouseFixed=true
//The following five values must add up to 100
//The default percentages of 45, 43, 4, 4 & 4 match the TPC-C spec
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
// Directory name to create for collecting detailed result data.
// Comment this out to suppress.
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
//root@xxxxx
osCollectorDevices=net_ens32 blk_sda
2.4, adding mysql type in the script
run / funcs.shの編集、
25 function setCP()
26 {
27 case '$(getProp db)' in
28 firebird)
29 cp='../lib/firebird/*:../lib/*'
30
31 oracle)
32 cp='../lib/oracle/*'
33 if [ ! -z '${ORACLE_HOME}' -a -d ${ORACLE_HOME}/lib ] then
34 cp='${cp}:${ORACLE_HOME}/lib/*'
35 fi
36 cp='${cp}:../lib/*'
37
38 postgres)
39 cp='../lib/postgres/*:../lib/*'
40
41 mysql)
42 cp='../lib/mysql/*:../lib/*'
43
44 esac
45 myCP='.:${cp}:../dist/*'
46 export myCP
47 }
48
49 # ----
50 # Make sure that the properties file does have db= and the value
51 # is a database, we support.
52 # ----
53 case '$(getProp db)' in
54 firebird|oracle|postgres|mysql)
55
56 '') echo 'ERROR: missing db= config option in ${PROPS}' >&2
57 exit 1
58
2.5、データをプリロードするようにスクリプトを変更します
extraHistIDのファイルrun / runDatabaseBuild.shのAFTER_LOADを削除し、スクリプトを実行させます。
18 BEFORE_LOAD='tableCreates'
19 #AFTER_LOAD='indexCreates foreignKeys extraHistID buildFinish'
20 AFTER_LOAD='indexCreates foreignKeys buildFinish'
2.6、mysqljdbcを追加します
mysqljdbcをダウンロードします。ここではmysql-connector-java-5.1.47.jarを使用します。
jdbcをlib / mysqlに入れ、mysqlディレクトリがlibの下に存在しないため、手動で作成する必要があります
$ cd lib
$ mkdir mysql
$ cp /path/to/mysql-connector-java-5.1.47.jar mysql /
$ツリー
2.7コンパイラ
antコマンド、コンパイラを直接実行します
$アリ
第三に、MySQLデータベースを構成します
データベースを作成し、ユーザーが許可を与える
mysql>データベースbenchmarksqlを作成します
mysql> create user'benchmarksql '@'% 'は' benchmarksql 'で識別されます
mysql> benchmarksql。*のすべての権限を「benchmarksql」で識別される「benchmarksql」@「%」に付与します
MySQLパスワード強度が失敗を検出する可能性があります。プロセスは次のとおりです。
mysql> select @@ validate_password_policy
mysql> SHOW VARIABLES LIKE'validate_password% '
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
6 rows in set (0.08 sec)
mysql> set global validate_password_policy = 0
mysql> set global validate_password_mixed_case_count = 0
mysql> set global validate_password_number_count = 3
mysql> set global validate_password_special_char_count = 0
mysql> set global validate_password_length = 3
mysql> SHOW VARIABLES LIKE'validate_password% '
分析パラメータ:
- validate_password_dictionary_file:パスワード強度ディクショナリファイルのパスを検証するために使用されるプラグ。
- validate_password_length:パスワードの最小長、パラメーターのデフォルトは8、最小制限、最小値:validate_password_number_count + validate_password_special_char_count +(2 * validate_password_mixed_case_count)
- validate_password_mixed_case_count:小文字と大文字の数、少なくとも含めるパスワードの数。
- validate_password_number_count:少なくともパスワードを含めるための桁数。
- validate_password_policy:パスワードの強度レベル、0 / LOW、1 / MEDIUM、2 / STRONGを調べます。次の値があります。
ポリシー | 実行されたテスト |
0またはLOW | 長さ |
1またはMEDIUM | 長さの数値、小文字/大文字、および特殊文字 |
2または強い | 長さ数値、小文字/大文字、および特殊文字辞書ファイル |
デフォルトは1、つまりMEDIUMであるため、パスワードの設定を開始するだけで長さが満たされ、数字、大文字または小文字、特殊文字が含まれている必要があります。
- validate_password_special_char_count:少なくとも含めたいパスワードの特殊文字の数。
4、BenchmarkSQLテスト
実行ディレクトリのコマンド
4.1、プリロードされたデータベース
$ ./runDatabaseBuild.sh props.mysql
真ん中は少し遅いかもしれません、辛抱強く
4.2テスト
$ ./runBenchmark.sh props.mysql
4.3、空のデータベース
$ ./runDatabaseDestroy.sh props.mysql
V.参考文献
ベンチマークSQL5.0は、MySQLのTPC-Cテストをサポートしています