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]