この種のDBモデルを最適化する最良の方法があるかどうかを知る必要があります。
これが私のテーブルです:
[category]
idCategory
name
[postCategory] (a post can be in more than 1 category)
idCategory
idPost
[post]
idPost
post
[comment]
idComment
idPost
inputDate
comment
特定の時間範囲内の特定のカテゴリからのすべての投稿を表示する必要があります(時間は「コメント」からのものです)。時間範囲は固定されています(1日、1週間、1か月、1年)。これが私が持ってきたものです:
SELECT DISTINCT(post.idPost), post.post
from post
INNER JOIN comment ON post.idPost = comment.idPost
INNER JOIN postCategory ON postCategory.idPost = post.idPost
WHERE postCategory.idCategory = <myCategoryId>
AND comment.inputDate >= <today - time range>
10kの投稿と500kのコメントをサポートしたいとしましょう...これを最適化する方法はありますか(インデックスを使用する以外に)?ストアドプロシージャ、一時テーブルを使用したクエリを使用して、「事前計算された」フィールドをどこかに追加しますか...?
どうもありがとう!:)