[前][次][番号順一覧][スレッド一覧]

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>]