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

mysql:9052

From: "藤田" <"藤田" <t-fujita@xxxxxxxxxx>>
Date: Wed, 24 Mar 2004 18:39:47 +0900
Subject: [mysql 09052] JOIN で結合すると遅くなります

初めまして。藤田と申します。
最近AccessからMySQLに乗り換えたばかりです。


現在売上伝票検索システムを作ろうと思っているのですが、検索速度が遅くて困って
おります。

現状、下記2つのテーブルがあります。

「denpyou」テーブル:
DenpyouNo|T_Code|DenpyouDate| (以下略)
---------+-----+---------
600053     | 123456|20040323|
600054     | 789012|20040323|


「denpyoumeisai」テーブル:
DenpyouNo|KikakuBangou|UriageQty| (以下略)
---------+-----------+---------
600053     |ABCD-1234   |       1|
600053     |EFGH-5678   |       2|
600054     |ABCD-1234   |       1|

(DenpyouNo.T_Code.KikakuBangouにはインデックスを作成してあります。)

「denpyou」テーブルには現在約130万件、「denpyoumeisai」テーブルには約1,600万
件あります。
ここで下記のようなSQLを発行しました。

select count(*) as cnt from denpyou inner join denpyoumeisai
on denpyou.DenpyouNo = denpyuoumeisai.DenpyouNo
where T_Code = '123456' and KikakuBangou = 'ABCD-1234';

すると結果がでるまでに 8 min 4.27 sec
かかります。
これでは実用に耐えられないのですが、もっと早くすることはできますでしょうか?
それとも下手にテーブルを正規化しないで

DenpyouNo|T_Code|DenpyouDate| KikakuBangou|UriageQty| ・・・

のように構成したほうがよいのでしょうか?

select count(*) as cnt from denpyoumeisai where KikakuBangou = 'ABCD-1234'

とすると1.90secで終了するのですが・・・

私の環境は
MySQL 4.0.14
OS WindowsXP Pro SP1
CPU Celeron 1.50GHz
メモリ256MB

です。
御教授お願いいたします。









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

->    9052 2004-03-24 18:39 ["藤田" <t-fujita@xxx] JOIN で結合すると遅くなります           
      9054 2004-03-24 18:47 ┣[SUGAWARA Hajime <sug]                                       
      9062 2004-03-25 00:33 ┃┗["藤田" <t-fujita@xxx]                                     
      9066 2004-03-25 08:14 ┃ ┗["藤田" <t-fujita@xxx]                                   
      9067 2004-03-25 08:43 ┃  ┗[seiji takegata <take]                                 
      9058 2004-03-24 20:00 ┣[ML account <ml@xxxxx]                                       
      9061 2004-03-24 20:53 ┣["藤田" <t-fujita@xxx]                                       
      9065 2004-03-25 03:30 ┃┗[ML account <ml@xxxxx]                                     
      9064 2004-03-25 01:52 ┗["UNO Shintaro" <uno@]