mysql:1136
From: <takeshi@xxxxxxxxxx>
Date: Mon, 23 Aug 1999 15:32:52 +0900
Subject: [mysql 01136] Re: インデックス作成のトラブル
毅です At Mon, 23 Aug 1999 13:48:29 +0900, Yutaka Miyahara <yutaka@xxxxxxxxxx> wrote: > > はじめまして。宮原@富士通と申します。 > > 最近mysqlを使い始めたばかりなのですが、インデックスの作成がうまくゆかな > いという問題に遭遇しました。 > 300万行程度のテーブルのmediumintのカラムに対してuniqueでないインデックス > を作成しようとしています。 > create indexを実行するとsqlプロンプトが戻ってきません。ユーザに対応する > ディレクトリを見ると次の三つのファイルができています。 > > A-1.ISD インデックス作成対象の表と同じサイズ(65MB程度) > A-1.ISM 60MB程度 > A-1.frm 8KB程度 > > それぞれのタイムスタンプは、A-1.frmはインデックス作成開始時刻頃、A-1.ISD > は作成開始後3時間程度、A-1.ISMはサイズが変わらないままいつまでも更新され > つづけています。パフォーマンスメーターを見ると、CPUやディスクアクセスは > 数分間隔で鋸歯状のピークを描いています。 > これは既知の現象なのでしょうか?また、バッファサイズなどのパラメータを変 > 更すれば回避できるのでしょうか? > 情報がありましたら教えてください。 > > なお、環境は次のとおりです。 > > mysql 3.22.25 > Solaris 2.5.1 > gcc 2.95で文字コードはujisでコンパイル MySQL は、 ALTER TABLE を行うとき、一度、今あるテーブルを まるまる A-数字.* にコピーします。 したがって、ファイルサイズが多いテーブルを alter すると、時間がかかります。 が、たがだか 65M 300万件で、何時間も、っていうのはあまりにも変です # --tmpdir (通常こんぱいるしたら /tmp) が少ないとか # disk があまりにも遅いとかメモリがないものだとか 他の手段としては、一度 mysqldump を取っておき、 そのテーブルはダンプ後にリネーム. そして新しく 正しいテーブルを作って入れてみる手があります。 -- 村上 毅 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>]