2016-07-07 3 views
-1

に参加し、私はそれを取って、クエリMySQLのLEFTは、クエリの最適化

SELECT P.*, COUNT(L.to) AS likes, U.name AS ownerName, U.username AS ownerUsername, 
    U.picture AS ownerPicture 
FROM sn_posts P LEFT JOIN sn_users AS U 
    ON U.id = P.ownerID 
LEFT JOIN sn_likes AS L 
    ON L.to = P.id 
WHERE (P.ownerID = 69) 
GROUP BY P.id 
ORDER BY P.id DESC 

を持っている - 0.3337秒の時間を、

+0

よりよいかもしれお問い合わせください。 –

+1

こんにちは、ようこそ、SOに - ようこそ、より多くの情報を提供してください - テーブル構造、データ量、indizesなど - 実際に人々はあなたを助ける方法があります。 –

+0

この列以外にも、結合列にインデックスを追加できます。 –

答えて

0

ownerIDフィールドを持つテーブルsn_postsのインデックスを追加 は私が私の上記の最適化をしたい

+0

すでにオーナーIDのインデックスですが、結果は0〜10行目(合計11件、クエリで0.3854秒)でした –

+0

これを試してください:SELECT P. *、COUNT(L.to)AS likes、U.name AS ownerName、U.username ownerUsername AS、sn_posts P左から U.picture AS ownerPicture はU.id = P.ownerID AND P.ownerID ON U AS sn_usersをJOIN = 69 LEFT L.to = P.id 基上のL AS sn_likesをJOIN BY P.id ORDER BY P.id DESC – Joker

+0

間違った結果... –