テーブルには約 150.000 行のサブスクライバーの回答があり、ユーザーが勝者を選択できるようにする必要があります。
私はこれらすべてを MS SQL に実装しましたが、予想よりもトラフィックが多かったため、この特定の部分 (サブスクライバーの処理) については Amazon DynamoDB 環境に移行することをお勧めします。
MS SQLには、次のようなSPがあります。
SELECT s.name, s.guid
FROM calendars c
INNER JOIN challenges cl on cl.calendar_id = c.calendar_id
INNER JOIN challenge_answers ca on ca.calendar_id = c.calendar_id
INNER JOIN subscribers s on s.calendar_id = c.calendar_id
WHERE
c.calendar_id = 9 and
cl.day = 15 and
ca.correct = 1 and
s.email not like '%@mydomain.com'
ORDER BY s.name DESC;
LINQを使用すると、最終的に.Take(25).Skip(page);
Amazon DynamoDB の は実行可能なオプションではないことを理解しているINNER JOIN
ので、テーブルにフィールドを追加し、subscribers
他のすべてのフィールドを含めることで、テーブルを 1 つだけ持つことができ、各項目にはクエリのすべてが含まれます。
Amazon DynamoDB を使用して部分的なグループのみを取得し、「ページ」を安全にスキップするための最良のアプローチは何ですか?