mysql:1148
From: <takeshi@xxxxxxxxxx>
Date: Tue, 24 Aug 1999 18:23:45 +0900
Subject: [mysql 01148] Re: インデックス作成のトラブル
毅です At Tue, 24 Aug 1999 14:07:35 +0900, Yutaka Miyahara <yutaka@xxxxxxxxxx> wrote: > > 宮原@富士通です。 > いかんせんメモリが少なくて(Oracleやapacheも動いているサーバ機なのに > 128MBしかない)ページングが頻発しているので遅いのはそのせいかもしれませ > ん。 ヘビーな使用ですね。こうなると時間がかかってもしかたないかも.... > ただ、create indexはもう一度トライしてみたのですがやはり駄目でした(今度 > はmysqldが暴走してCPU高負荷状態のまま)。 これは mysql を ctrl-C で止めたりしても動いている、 mysqladmin processlist で、プロセスが走っている、 ってことでしょうか? mysql> alter.... などの途中で C-C しても、スレッドが走っている場合があります スレッドを止めるには mysqladmin を使用します At Tue, 24 Aug 1999 15:34:12 +0900, Yuzuru Goto <kn6y-gtu@xxxxxxxxxx> wrote: > 途中経過を見ていると後からindexを作る場合 > 巨大なテンポラリファイルが作成されこれが時に > 空き容量をすべて食い尽くしてしまいそのまま > になってしまう場合が見られました。 alter table を行うと今のデータは全て一時ファイル A-* にコピーされ ますので、時間もdiskも使用します。 で、この一時ファイル作成時に disk full になると、 スレッドによっては(たぶんに OS のスレッドの実装によると思いますので すべてのOSに当てはまらないと思いますが) ずっと待状態で、disk に空きができたらまた開始する場合があります > サーバのキャパによると思いますが村上さんは > この300万件の処理、後からindexを作る場合 > どの位の時間で完了するのが妥当と考えられますか? うちのサーバー ( Ultra Wide SCSI ) で、昔やったときは 一時間ぐらいだったなぁ、と思って、もう一度やってみると、 mysql> alter table dummy modify a char(50) not null, add index a (a(10)); Query OK, 4158806 rows affected (43 min 13.80 sec) Records: 4158806 Duplicates: 0 Warnings: 0 これぐらいでした。 *.ISD は 900 M Bytes あります ( 60MBytes の 10数倍 ) 件数もそうですし、テーブルの定義(charがいくつでとか)も 関係するでしょうから、違いは出てくると思いますが # Ultra 2 の disk ってどれぐらい速いのかしら? -- 村上 毅 takeshi@xxxxxxxxxx
1134 1999-08-23 13:48 [Yutaka Miyahara <yut] インデックス作成のトラブル 1136 1999-08-23 15:32 ┣[<takeshi@xxxxxxxxxx>] 1146 1999-08-24 14:07 ┃┗[Yutaka Miyahara <yut] 1147 1999-08-24 15:34 ┗[Yuzuru Goto <kn6y-gt] -> 1148 1999-08-24 18:23 ┗[<takeshi@xxxxxxxxxx>] 1150 1999-08-25 10:58 ┣[Yutaka Miyahara <yut] 1158 1999-08-26 11:26 ┗[Yuzuru Goto <kn6y-gt] 1160 1999-08-26 12:23 ┗[<takeshi@xxxxxxxxxx>]