mysql:15712
From: HIRATSUKA Sadao <HIRATSUKA Sadao <hiratsuka.sadao@xxxxxxxxxx>>
Date: Thu, 29 Mar 2012 20:25:33 +0900
Subject: [mysql 15712] Re: Left Join句を付けたUPDATE処理時間が非常に長くかかって
こんばんは、平塚です。 割り込みすいません。 On Thu, 29 Mar 2012 17:58:50 +0900 "ochiai" <s.ochiai@xxxxxxxxxx> wrote: > select_type table type possible_keys key key_len ref rows Extra > SIMPLE table-a ALL NULL NULL NULL NULL 20万 > SIMPLE table-b index NULL Kb 63 NULL 14万 > Usingindex こちらでそれっぽいテストケースを作って取得したEXPLAINが以下です。 +-+------+--+-------+-------+-------+----+--------------+------+ |d|select|ta|type |possibl|key |key_|ref |rows | +-+------+--+-------+-------+-------+----+--------------+------+ |1|SIMPLE|ta|ALL |NULL |NULL |NULL|NULL |250791| |1|SIMPLE|tb|eq_ref |PRIMARY|PRIMARY|4 |scott.ta.tb_id| 1| +-+------+--+-------+-------+-------+----+--------------+------+ table-bに対するアクセスは、indexではなくeq_refになるのが理想です。 ochiaiさんのケースでは20万+20万×14万=280億レコードの評価が行われます。 私のケースでは25万+25万×1=50万です。 table-bのKbカラムにUNIQUE KEYがあるとのことですが、 Kbカラムが登場するのは複合キーの第2カラム以降だったりしないでしょうか。 あるいは、KaとKbのデータ型が異なっていたりしないでしょうか。 SHOW CREATE TABLE table-a\G SHOW CREATE TABLE table-b\G を見せていただけると、何か分かるかもしれません。 よろしくお願いいたします。 -- 平塚貞夫 hiratsuka.sadao@xxxxxxxxxx
15703 2012-03-29 15:08 ["ochiai" <s.ochiai@x] Left Join句を付けたUPDATE処理時間が非常に長くかかって 15705 2012-03-29 16:56 ┣[中川 貴 <takashi.nak] 15706 2012-03-29 17:01 ┗[中川 貴 <takashi.nak] 15707 2012-03-29 17:12 ┗[中川 貴 <takashi.nak] 15708 2012-03-29 17:42 ┗["ochiai" <s.ochiai@x] 15709 2012-03-29 17:46 ┣[中川 貴 <takashi.nak] 15711 2012-03-29 17:58 ┃┗["ochiai" <s.ochiai@x] -> 15712 2012-03-29 20:25 ┃ ┣[HIRATSUKA Sadao <hir] 15713 2012-03-30 01:27 ┃ ┗[中川貴 <nora1962@xxx] 15727 2012-04-11 17:03 ┃ ┗["ochiai" <s.ochiai@x] Re: Left Join句を付けたUPDATE処理時間が非常に長くかかって(長文) 15728 2012-04-11 18:24 ┃ ┗[中川 貴 <takashi.nak] 15729 2012-04-12 09:46 ┃ ┗[HIRATSUKA Sadao <hir] 15730 2012-04-13 10:32 ┃ ┗["ochiai" <s.ochiai@x] Re: Left Join句を付けたUPDATE処理時間が非常に長くかかって(解決御礼) 15733 2012-04-13 11:13 ┃ ┗[HIRATSUKA Sadao <hir] 15710 2012-03-29 17:47 ┗[Masaaki Matsuyama <m]