我正在使用Cassandra作为主数据库的项目,“users”表如下所示:
CREATE TABLE users (
id uuid PRIMARY KEY,
name text,
address text,
email text,
password text,
website text
)
我的应用程序需要执行查询列表所有用户按名称和分页顺序排序,我正在努力设计表以满足此要求。
那么为这种情况设计“users_order_by_name”的好方法是什么?
感谢。
更新: 我的问题是关于设计表来获取排序查询,分页部分不是我关注的问题。
我理解群集密钥可用于在分区内获取排序结果。但是如果我使用“name”作为聚类键。我应该使用什么作为分区键?
答案 0 :(得分:2)
分页是在驱动程序级别实现的,大多数驱动程序都支持它。
关于排序 - 在“表”上实现它有一个问题。您可以使用群集密钥,因此所有数据都将在分区级别(在您的示例中为id)中按此键排序。
所以你必须以某种方式对分区进行排序,例如制作名称分区键的第一个字母,或者在客户端进行所有这些排序。
答案 1 :(得分:1)
WITH CLUSTERING ORDER BY (name)
如果你想使用分区键,那么也应该考虑它。