内容へ移動
fl8 Wiki
ユーザ用ツール
ログイン
サイト用ツール
検索
ツール
文書の表示
以前のリビジョン
バックリンク
最近の変更
メディアマネージャー
サイトマップ
ログイン
>
最近の変更
メディアマネージャー
サイトマップ
現在位置:
Dokuwiki.fl8.jp
»
02_freebsd
»
04_database
»
01_mysql
»
18 MySQLでALTER TABLEの進捗確認
トレース:
02_freebsd:04_database:01_mysql:18_alter_table_progress
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== 18 MySQLでALTER TABLEの進捗確認 ====== 大きなテーブルに対してALTER TABLEをかけると、数時間かかってしまったりします。 そこで進捗状況が分かれば助かる。 Handler_writeが更新件数なので、ALTER TABLEをかけたテーブルの件数が分かればだいたいの終了時間が想定できる。 <code | 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 </code> ===== 例 ===== 下記の例だと、テーブルに12万行あって 1秒間に、200000行処理しているので、およそ106分くらいで終わるという計算になる。 <code> 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 ・ ・ ・ </code> {{tag>mysql}}
02_freebsd/04_database/01_mysql/18_alter_table_progress.txt
· 最終更新: 2019/07/20 08:36 by
matsui
ページ用ツール
文書の表示
以前のリビジョン
バックリンク
文書の先頭へ