工作需要对130W的表增加字段,因为是操作线上数据库,所以提前在本地调查下耗时。
首先建表:
CREATE TABLE `alter_cloumn_test` ( `id` int(11) unsigned NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8
生成130W条数据:
1.生成130W条插入语句脚本:insert_column_sql.sh
for ((i=0; i<1300000;i++)) do echo "insert into \`alter_cloumn_test\` values(${i});" done
2.执行脚本insert_column_sql.sh 生成sql文件(insert_sql.sql)
sh insert_column_sql.sh > insert_sql.sql
3.计算插入130W条数据的耗时
echo `date +%s`
mysql -h ip -u userName -pPassWd databaseName < /root/wenwen.fu/sh/insert_sql.sql
echo `date +%s`
结果:
1486374924 1486375473
耗时:549s
计算增加字段的耗时:
echo `date +%s` mysql -h ip -u userName -pPassWd databaseName -e "alter table alter_cloumn_test add period int(2) unsigned default 0" echo `date +%s`
结果:
1486377130
1486377151
耗时:21s