工作需要對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