我有一个用例,其中数据是多对多的,并且需要广泛的查询功能。
参与者和事件
一个用户/参与者可以注册多个事件。每个事件可以有很多参与者。这是一个多对多的关系。
考虑这样的数据集。
需要以下查询:
用于处理查询 1和查询 2
EventParticipantTable :(eventId,participantId):1000 x 10M 记录
这需要搜索 1000 x 10M 的记录吗?
数据集可以按 eventId 拆分为块,以使其理想地仅扫描 10M 记录,但不确定如何在 PostgreSQL 中处理。
用于处理查询 3
事件表 + EventParticipantTable 加入
这需要连接两个表,其中我首先获取即将发生的事件的 Events 表(基于开始和结束时间戳),并且对于每个匹配的 eventId 需要查找查询的参与者 ID 是否存在于 EventParticipantTable 中。
这需要搜索 1000 个事件 * (1000 * 10M) 个事件参与者表条目?
在这种情况下,每表 1000 x 10M 记录不是问题吗?