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

mysql:10707

From: al-kamil <al-kamil <al-kamil@xxxxxxxxxx>>
Date: Mon, 20 Dec 2004 19:36:39 +0900
Subject: [mysql 10707] Re: SELECTの速度が遅い

内部結合でなければ、ならないのでしょうか?
例えば、抽出のメインテーブルがmessagesでリンクテーブルがuserであれば

  SELECT u.id, u.name
  FROM message as m LEFT JOIN user as u on
      m.target = u.id
  WHERE u.sid = 53
  AND m.isread = 'f'

では、だめでしょうか?
当初のSQL文から創造するに
messageテーブルのtargetがuserテーブルのidに一致するもので
userテーブルのsidが53かつmessageテーブルのisreadがFのものを
抽出するのだと思ったのですが違うでしょうか?

> > Where句のみでの結合を行わずに、Form句でJOINを利用してみては
> > いかがでしょうか?
> > DB2, Oracleでは、この方法で速度を上げることができました。
> 
> 
> select users.id,users.name from messages INNER JOIN users on  
> target=users.id where users.sid = 53 and messages.isread='f'
> 
> こんな感じでJOINしてみました。結果は、以前のクエリと同じになりましたが、時間はのびてしまい、約10秒かかってしまいました。
> 
> JOINの仕方が間違っているのでしょうか?
> 
> 以上よろしくお願いいたします。
> 
> 松丸頒泰
> mattun@xxxxxxxxxx
> http://www.meganebu.com

-- 
al-kamil <al-kamil@xxxxxxxxxx>


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

     10706 2004-12-20 18:27 [mattun <mattun@xxxxx] Re: SELECTの速度が遅い                  
->   10707 2004-12-20 19:36 ┣[al-kamil <al-kamil@x]                                       
     10709 2004-12-21 10:44 ┗[Hideki SUNADA <hidek]                                       
     10711 2004-12-21 15:10  ┗[mattun <mattun@xxxxx]