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]