我有以下情况。
数据库中有200个条目需要按日期和等级排序。 在前端,我显示了2个列表,每个列表用于日期和等级。
那么处理这个问题的最佳方法是什么。我有3个选择:
1)运行select query以获取所有数据并在后端对它们进行排序并在前端显示它们。
2)运行select查询并在前端的浏览器中对它们进行排序。
3)让Cassandra按等级或日期排序。我们如何做到这一点? 问题是CQL 3.1.1不支持ORDER BY二级索引。
例如,如果主键是(row_id,date),并且我想按日期排序,那么查询将如下所示,但不能按排名排序。
select * from reviews where row_id='123' order by date desc;
如果主键是(row_id,rank),则按日期排序将不起作用。组合主键(row_id,date,rank)不适用于按排名排序。 看起来我们可以按日期或排名进行排序。
那么最佳选择1,2还是以不同的方式做3?
答案 0 :(得分:0)
如果它只有200件,我会把它存放在卡桑德拉两次。每种类型一次。或者将其存储在一个排序顺序中,并在客户端中使用另一个。无论您在前端还是后端的排序都取决于您。我可能会在后端对它们进行排序,因此我可以选择在存储两次之间切换,并存储一次+后端排序,而无需更改客户端。