Test TPC-C spoločnosti Benchmarksql MySQL

Benchmarksql Mysqls Tpc C Test



Konfigurácia inštalácie BenchmarkSQL
BenchmarkSQL postgresql test TPC-C
Test BenchmarkSQL testu TPC-C
Test TPC-C spoločnosti Benchmarksql MySQL

I. úvod



Samotný BenchmarkSQL nepodporuje test MySQL TPC-C, ale môžeme upraviť zdrojový kód tak, aby umožňoval testovanie podpory MySQL.



Po druhé, upravte zdrojový kód



2.1, pridajte typ MySQL

Pri úprave zdroja src / client / jTPCC.java bol pridaný typ liečby 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 dotaz pridať alias

Upravte zdrojový kód src / client / jTPCCConnection.java, pridajte do výpisu alias, vetvu SQl pridajte alias na rozbitie, po vzore 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 vytvára profily prop.mysql

V spustenom adresári skopírujte props.pg ako prop.mysql a upravte súbor 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

Úpravy súboru 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, upravte skript tak, aby sa údaje vopred načítali

Vymažte AFTER_LOAD v súbore run / runDatabaseBuild.sh v extraHistID, nechajte ho spustiť skript

18 BEFORE_LOAD='tableCreates'

19 #AFTER_LOAD='indexCreates foreignKeys extraHistID buildFinish'

20 AFTER_LOAD='indexCreates foreignKeys buildFinish'

2.6, pridajte mysql jdbc

Stiahnite si mysql jdbc, tu používam mysql-connector-java-5.1.47.jar.

Jdbc do lib / mysql in, mysql adresár neexistuje pod lib, musíte vytvoriť ručne

$ cd lib

$ mkdir mysql

$ cp /path/to/mysql-connector-java-5.1.47.jar mysql /

$ strom

Kompilátor 2.7

Priamo spustite príkaz mravca, kompilátor

$ ant

Po tretie, nakonfigurujte databázu MySQL

Vytvorte databázu, používatelia udeľujú povolenie

mysql> vytvoriť databázu benchmarksql

mysql> vytvoriť používateľa 'benchmarksql' @ '%' identifikovaného podľa 'benchmarksql'

mysql> udeliť všetky privilégiá pre benchmarkyql. * pre 'benchmarkyql' @ '%' označené ako 'benchmarkyql'

Môže sa vyskytnúť chyba zisťujúca silu hesla MySQL, postup je nasledovný:

mysql> vyberte @@ validate_password_policy

mysql> ZOBRAZIŤ PREMENNÉ AKO „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> nastaviť globálne validate_password_mixed_case_count = 0

mysql> nastav globálne validate_password_number_count = 3

mysql> nastav globálne validate_password_special_char_count = 0

mysql> nastavit global validate_password_length = 3

mysql> ZOBRAZIŤ PREMENNÉ AKO „validate_password%“

Analytické parametre:

  • validate_password_dictionary_file: zástrčka používaná na overenie cesty k slovníku so silou hesla.
  • validate_password_length: minimálna dĺžka hesla, predvolený parameter je 8, má minimálny limit, minimálna hodnota: validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
  • validate_password_mixed_case_count: Počet malých a veľkých písmen, minimálne taký počet hesiel, ktoré treba zahrnúť.
  • validate_password_number_count: počet číslic, ktoré obsahujú aspoň heslo.
  • validate_password_policy: Preskúmajte úrovne sily hesla, 0 / NÍZKE, 1 / STREDNÉ, 2 / SILNÉ. Má nasledujúce hodnoty:

Politika

Vykonané testy

0 alebo NÍZKY

Dĺžka

1 alebo STREDNÉ

Číselné znaky dĺžky, malé / veľké písmená a špeciálne znaky

2 alebo SILNÉ

Slovníkový súbor s číselnými, malými / veľkými písmenami a so špeciálnymi znakmi

Predvolená hodnota je 1, to znamená STREDNÁ, takže nastavenie hesla musí začať zodpovedať dĺžke a musí obsahovať čísla, malé alebo veľké písmená a špeciálne znaky.

  • validate_password_special_char_count: počet špeciálnych znakov v hesle, ktorý chcete zahrnúť.

Štyri, test BenchmarkSQL

Príkaz v spustenom adresári

4.1, predinštalovaná databáza

$ ./runDatabaseBuild.sh props.mysql

Stred môže byť trochu pomalý, buďte trpezliví

4.2 Skúška

$ ./runBenchmark.sh props.mysql

4,3, prázdna databáza

$ ./runDatabaseDestroy.sh props.mysql

V. Odkazy

benchmarksql 5.0 podporuje test TPC-C pre MySQL

Od< https://www.jianshu.com/p/622545cb1341 >