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]