mysql:15705
From: 中川 貴 <中川 貴 <takashi.nakagawa@xxxxxxxxxx>>
Date: Thu, 29 Mar 2012 16:56:02 +0900
Subject: [mysql 15705] Re: Left Join句を付けたUPDATE処理時間が非常に長くかかって
確信はありませんが、 EXPLAIN SELECT `table-a`.`fa`,`table-b`.`fb` FROM `table-a` LEFT JOIN `table-b` ON ( `table-a`.`Ka` = `table-b`.`Kb` ) でINDEXが使われていないのではないでしょうか? 原因は分かりませんがEngineがMyISAMだとUSE INDEXヒントをつけても 「Impossible WHERE noticed after reading const tables」が出ました。 InnoDBだとINDEXを使用するようです。 **************************************** コープ情報システム株式会社 運用事業部 コーププラザサービスデスクグループ 中川 貴 175-0094 東京都渋谷区渋谷3-29-8 コーププラザ5F TEL 03-5778-8010 E-MAIL takashi.nakagawa@xxxxxxxxxx **************************************** (2012/03/29 15:08), ochiai wrote: > お世話になります。 > > Left Join句を付けたUPDATE処理時間が非常に長くかかって、処理に失敗しますので、解決策を教えてください。 > > 実行したSQL > > UPDATE `table-a` LEFT JOIN `table-b` ON ( `table-a`.`Ka` = `table-b`.`Kb` ) > SET `table-a`.`fa` = `table-b`.`fb`; > > 経過時間 3600秒を過ぎても終了しません。 > > ちなみに、作業環境は以下の通りです。 > > 1.作業環境 > 1)サーバーマシンの環境 > MySQLサーバ:バージョン5.5.11 > (mysql-5.5.11-win32.msi) > Workbench:バージョン5.2.33CE Revision 7508 > (mysql-workbench-gpl-5.2.33b-win32.msi) > OS:Windows 7 Professional SP1(32bit) > PC:DELL Vostro(Intel Core 2 Duo,CPU E7500 2.93GHz) RAM 2.00GB > 2)クライアントマシンの環境 > サーバマシン上で実行 > 実行時には他の処理は動かしていません。 > 3)データ(innodb) > table-a > レコード数:約25万件 > レコードサイズ:約300バイト > `table-a`.`Ka`:VARCHAR(30) KEY設定済み > table-b > レコード数:約20万件 > レコードサイズ:約300バイト > `table-b`.`Kb`:VARCHAR(30) ユニークKEY設定済み > > 2.関係しそうなことと思っていること > > 以下のような点はLeft Join句の効率化に影響しますでしょうか? > > 1)AdvancedタブのVarious/big-tablesをチェックする > > 2)AdvancedタブのVarious/join_buffer_size(現在131,072)を大きくする > > 3)AdvancedタブのVarious/read_buffer_size(現在49K)をチェックする > > 4)InnoDBタブのinnodb_additional_mem_pool_size(現在7M)を大きくする > > 5)InnoDBタブのinnodb_buffer_pool_size(現在300M)を大きくする > > 6)DBMS connection read time out (in seconds)の設定時間をもっと大きくし、処理が終わるのを待つ。 > > 以上はWorkbenchのOption file画面での話です。 > > 7)ジョインの結果を小さくするために、left joinテーブルとして処理に必須のフィールドのみを抽出したテーブルを作成し、そのテーブルを使用する。 > > 思いつくのは以上のようなことです。 > なお、1)〜5)はどのような場合に設定するのか、よくわかりません。 > > よろしくご指導願います。 > >
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]