我的桌子看起来像这样:
CREATE TABLE table(
user text,
gender boolean,
...,
PRIMARY KEY(user)
);
其中gender
代表男性为true
,女性为false
。
我想提出3种类型的查询:
我想过将gender
参数添加到主键。这将使查询2和3直截了当并检索所有用户,我需要进行查询2和3,然后连接结果。
问题是我的用户表变得非常大,我必须对结果进行分页。当gender
是主键的一部分时会出现问题,因为我必须在API响应中传递pageState
以使用户能够查询更多结果。
是否有更好的方法来启用此类请求,使分页相对简单直接?
非常感谢
答案 0 :(得分:2)
一个问题有两个问题。
首先,查询一个。如果您需要这3种类型的查询,那么非规范化并创建3个表:users,male_users和female_users。
其次,分页一个。如果您通过在表级查询列出所有用户(或男性/女性用户),则结果将不会被排序,因为多个节点将参与详细说明结果并且分区已经过哈希处理。如果您正在谈论UI级别的分页(只提取并显示前100个用户),它将是tricky。如果你在谈论驱动程序级别的分页(所有用户都是由块/页面提取的),那么它可能会更容易。