#!/usr/bin/env bash echo "Bash version is ${BASH_VERSION}" # Initialize sql query mysqldb=benchmark mysqlusr=root mysqlpwd=root mysqloptions="" mysqltable=simple startSql="INSERT INTO $mysqltable(id, name) VALUES" # Create data list min=0 max=200000 stepRun=1000 arrSQL=() # Make data as many parts. Max data for single query is step run for i in $(seq $min $stepRun $max) do childMax=$i childMin=$(($childMax-$stepRun)) sql=$startSql # Make part sql for j in $(seq $childMin $childMax) do if [ $j -gt $min ]; then # Fill row data sql="$sql(1, $j)" if [ $j -lt $childMax ]; then sql="$sql," fi fi done # Append part query sql to array if [ "$sql" != "$startSql" ]; then arrSQL[$i]="$sql;" fi done # Run the query mysql -u $mysqlusr -p$mysqlpwd $mysqloptions -D $mysqldb -B -e "TRUNCATE $mysqltable" echo "Table `$mysqltable` has truncated" echo "Start insert from value $min to value $max" echo "---------------------------" for i in "${!arrSQL[@]}" do mysql -u $mysqlusr -p$mysqlpwd $mysqloptions -D $mysqldb -B -s -e "${arrSQL[$i]}" echo "Added data of index $i" done