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

mysql:1443

From: akon <akon <akon@xxxxxxxxxx>>
Date: Tue, 04 Jan 2000 17:31:21 +0900
Subject: [mysql 01443] Re: LEFT JOIN は実用に耐えるか

とみたさん 早々のレスありがとうございます。

> インデックスの設定に問題があるかもしれないので、
> 
> 	explain select count(*) from TableA left join TableB using(key)
> 
> の結果で何かわかるかもしれません。

試してみました

mysql> explain select count(*) from TableA left join TableBe using(key1);
+-----------+------+---------------+------+---------+------+--------+-------+
| table     | type | possible_keys | key  | key_len | ref  | rows   | Extra |
+-----------+------+---------------+------+---------+------+--------+-------+
| TableA    | ALL  | NULL          | NULL |    NULL | NULL | 252790 |       |
| TableB    | ALL  | PRIMARY       | NULL |    NULL | NULL | 134750 |       |
+-----------+------+---------------+------+---------+------+--------+-------+
2 rows in set (0.00 sec)

です。よく分かりません。


> また、MySQL は join を使うより、where で条件を指定した方が速いようなので、
> 
> 	select count(*) from TableA, TableB where TableA.key = TableB.key
> 
> としてみると違う結果になるかもしれません。
> 
そうですね これだと 数十秒で戻ってきます。
が 要件は あくまで LEFT JOIN なんです。
Select 句は 実際は、COUNT(*)ではなくいくつかの項目を指定したいわけで
TableB に一致しないものも含め TableA 全件 なんです。



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

      1441 2000-01-04 16:37 [akon <akon@xxxxxxxxx] LEFT JOIN は実用に耐えるか              
      1442 2000-01-04 16:35 ┗[とみたまさひろ <tomm]                                       
->    1443 2000-01-04 17:31  ┗[akon <akon@xxxxxxxxx]                                     
      1444 2000-01-04 17:32   ┗[とみたまさひろ <tomm]                                   
      1445 2000-01-04 18:37    ┗[akon <akon@xxxxxxxxx]