たとえば、フォーラムの特定のスレッドにある投稿の数を確認しようとすると、どちらが速いのか疑問に思いました。するべきか...
(a)特定のスレッドIDを持つデータベース内の各投稿を調べ、行数を数えます
また
(b)スレッドが作成されるたびに、スレッドデータベースの別の列に1つ追加し、その単一の行をクエリします
ありがとう。
たとえば、フォーラムの特定のスレッドにある投稿の数を確認しようとすると、どちらが速いのか疑問に思いました。するべきか...
(a)特定のスレッドIDを持つデータベース内の各投稿を調べ、行数を数えます
また
(b)スレッドが作成されるたびに、スレッドデータベースの別の列に1つ追加し、その単一の行をクエリします
ありがとう。
スレッドIDのインデックスを持つことの何が問題になっていますか?スレッドIDフィールドでグループ化された単純なCOUNT式で十分ではないでしょうか。
キャッシングがあれば、これは私が言えることからするとかなり速いでしょう。
--This will provide counts for all threads
SELECT COUNT(threadID)
FROM Posts
GROUP BY threadID;
--This will provide count for one thread
SELECT COUNT(threadID)
FROM Posts
WHERE threadID=123
GROUP BY threadID;
時期尚早の最適化はすべての悪の根源です。
ソリューション(a)を使用して開始し、サイトで必要な場合はソリューション(b)に切り替えます。