#!/bin/sh #==============================================================================# #VERSION="v2022022200" # universell umgebaut VERSION="v2022022300" # universell umgebaut if [ "x${4}" = x ] ; then echo "${0} [Hostname] [Port] [Threads] [Inserts]" echo "${0} 127.0.0.1 3306 8 100000" echo "${0} localhost 3306 8 100000" exit 10 else MYSQL_HOST="${1}" MYSQL_PORT="${2}" THREADS="${3}" # 2 4 5 6 7 8 16 32 64 128 256 512 REQUESTS="${4}" # 100000 fi #==============================================================================# #------------------------------------------------------------------------------# MYSQL_USR=root # Voreinstellung: sbtest MYSQL_PWD="$(echo Z2VoZWltCg== | base64 -d)" MYSQL_DB=mytest # Voreinstellung: sbtest echo " START TRANSACTION; DROP DATABASE IF EXISTS ${MYSQL_DB}; CREATE DATABASE IF NOT EXISTS ${MYSQL_DB}; COMMIT; " | mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USR} -p${MYSQL_PWD} #------------------------------------------------------------------------------# #set -x START_ZEIT="$(date -u +'%s')" for i in $(seq 1 ${THREADS}) do echo " START TRANSACTION; CREATE TABLE ${MYSQL_DB}.tabelle${i} ( spalte01 VARCHAR(255) default NULL, PRIMARY KEY (spalte01) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; COMMIT; " | mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USR} -p${MYSQL_PWD} ${MYSQL_DB} echo "SELECT * FROM ${MYSQL_DB}.tabelle${i};" | mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USR} -p${MYSQL_PWD} ( date > /tmp/${MYSQL_DB}.tabelle${i} for A in $(seq 1 ${REQUESTS}) do echo "INSERT INTO ${MYSQL_DB}.tabelle${i} (spalte01) VALUES ('${A}');" done | taskset --cpu-list 0-8 mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USR} -p${MYSQL_PWD} ${MYSQL_DB} rm -f /tmp/${MYSQL_DB}.tabelle${i} ) & done echo "Es werden in ${THREADS} Tabellen jeweils ${REQUESTS} Datensätze eingetragen." #echo "echo \"SHOW PROCESSLIST;\" | mysql -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USR} -p${MYSQL_PWD} -t" WARTEN="$(ls /tmp/${MYSQL_DB}.tabelle* 2>/dev/null | wc -l)" while [ 0 -lt ${WARTEN} ] do WARTEN="$(ls /tmp/${MYSQL_DB}.tabelle* 2>/dev/null | wc -l)" sleep 0.2 done STOP_ZEIT="$(date -u +'%s')" echo "Laufzeit: $(echo "${START_ZEIT} ${STOP_ZEIT}" | awk '{print $2 - $1}') Sekunden"