このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 4 / 昨日: 0
総計: 1260
- Dokuwiki.fl8.jp(249)
- 13 CentOS6メール設定(14)
- 02 ProFTPD(12)
- 34 UnboundでHA構成(11)
- FreeBSD カーネル再構築(11)
最近の更新
このページへのアクセス
今日: 4 / 昨日: 0
総計: 1260
大きなテーブルに対してALTER TABLEをかけると、数時間かかってしまったりします。
そこで進捗状況が分かれば助かる。
Handler_writeが更新件数なので、ALTER TABLEをかけたテーブルの件数が分かればだいたいの終了時間が想定できる。
alert_progress.sh
#!/bin/bash while true do PRE=`mysql -uroot -pgmocl-mysql -e "SHOW GLOBAL STATUS LIKE 'Handler_write'" | grep Handler_write | awk '{print $2}'` sleep 1 CUR=`mysql -uroot -pgmocl-mysql -e "SHOW GLOBAL STATUS LIKE 'Handler_write'" | grep Handler_write | awk '{print $2}'` echo `expr $CUR - $PRE` sleep 1 done
下記の例だと、テーブルに12万行あって
1秒間に、200000行処理しているので、およそ106分くらいで終わるという計算になる。
mysql> select count(id) from test_table; +------------+ | count(id) | +------------+ | 1273517123 | +------------+ 1 row in set (10 min 26.05 sec) $ bash alert_progress.sh 200000 200000 200000 ・ ・ ・