shell scriptでrandomな値のmysql tableを作成する
課題では友人から貰ったperl scriptを改変して使わせてもらったけど,Bashでできないかと思って作ったのをlog.
csvファイルを作成
せっかくだからprogressを出力させてみる.可愛い.
numColumn=300000 for i in `seq $numColumn` do printf "\r exporting... \t\t$i/$numColumn" echo "$i,$((RANDOM%30000))" >>testtb.csv done echo "\a"
mysqlにcsv形式のデータをload
ファイル読み込むだけだから早い.
MYSQL_PWD="******" mysql --local-infile=1 -u user -D db <<EOF create table tb1 (id int, record int); load data local infile './testtb.csv' into table tb1 fields terminated by ',' enclosed by '"' (id, record); EOF
その他
講義用に使ったその他のコード.
# copy table create table tb2; insert into tb2 select * from tb1; # add index alter table tb2 add index index_name(record); # delete table MYSQL_PWD="******" mysql -u user -D db -e "drop table tb1, tb2" # remove csv file rm ./testtb.csv