100件の投稿を取得して、先週「リミックス」された回数で並べ替えようとしています。これまでの私の質問は次のとおりです。
SELECT COUNT(remixes.post_id) AS count, posts.title
FROM posts
LEFT JOIN (
SELECT * FROM remixes WHERE created_at >= 1343053513
) AS remixes ON posts.id = remixes.post_id
GROUP BY posts.id
ORDER BY count DESC, posts.created_at DESC
LIMIT 100
これにより、正しい結果が得られます。ただし、実行した後、DESCRIBE
私はこれを取得します:
そしてここに私のインデックスがありますposts
:
そして私のインデックスremixes
:
そして、ここに私の質問があります:
- 追加の列で使用されている用語が実際に私に伝えようとしていることを説明できますか?
- このクエリを最適化して拡張性を高める方法についてのヒントを教えてください。
前もって感謝します!
アップデート
Zaneのソリューションに従って、クエリを次のように更新しました。
SELECT COUNT(remixes.post_id) AS count, posts.title
FROM posts
LEFT JOIN remixes ON posts.id = remixes.post_id AND remixes.created_at >= 1343053513
GROUP BY posts.id
ORDER BY count DESC, posts.created_at DESC
LIMIT 100
そして、これが最新のものですDESCRIBE
私はまだそのfilesort
部分について心配しています。何か案は?