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

mysql:12844

From: "takayuki miura" <"takayuki miura" <t.miura@xxxxxxxxxx>>
Date: Wed, 8 Mar 2006 19:49:27 +0900
Subject: [mysql 12844] 結合しているクエリのパフォーマンスチューニング

三浦と申します。

下記のクエリに関して質問があります。
EXPLAINで確認すると、フルテーブルスキャンしていることが
確認できますが、2点ほど質問がございます。
ご教授いただけると幸いです。よろしくお願いいたします。

質問1
下記のクエリに関して、インデックスを使用するようにチューニングすることは
可能でしょうか。
#1つのテーブルに対して1つのインデックスしか使用できないことは把握してい
ますが問題は
#その制限ではなさそうなので

質問2
EXPLAIN結果には、「possible_keys」として「table1_Index」があがっているの
ですが
「force index (table1_index)」をクエリに指定しても、使用されません。
どのような理由が考えられますでしょうか。

■バージョン
MySQL 5.0

■問題のクエリ
SELECT col1 FROM table1 AS i, table2 AS m WHERE i.col2 = m.col1

■EXPLAIN結果
| id | select_type| table| type | possible_keys| key| key_len| ref| |
rows| Extra
|  1 | SIMPLE | i | ALL| table1_Index| NULL| NULL| NULL| | 488506 |
Using where 
|  1 | SIMPLE |m| ref  | table2_index|table2_index| 4| db.i.col2 | 1|
Using where |

■テーブル
CREATE TABLE table1 (
  col1 BIGINT NOT NULL AUTO_INCREMENT,
  col2 INT NOT NULL,
  PRIMARY KEY(col1),
  INDEX table1_Index(col2),
  FOREIGN KEY(col2)
    REFERENCES table2(col2)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
)

CREATE TABLE table2 (
  col1 INT NOT NULL,
  col2 INT NOT NULL,
  PRIMARY KEY(col1),
  INDEX table2_index(col1),
)
TYPE=InnoDB;


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

->   12844 2006-03-08 19:49 ["takayuki miura" <t.] 結合しているクエリのパフォーマンスチューニング
     12845 2006-03-08 22:39 ┗[とみたまさひろ <tomm]