【发布时间】:2014-11-16 12:11:23
【问题描述】:
我正在设计一个 cassandra 列族,如下所示
CREATE TABLE PLOT
(
PLOT_ID text,
INDEX_VALUE double,
VALUE_1 double,
VALUE_2 double,
VALUE_3 double,
PRIMARY KEY(PLOT_ID,INDEX_VALUE));
该设计使我也可以在 INDEX_VALUE 范围内进行查询。
我预计表 PLOT 中 PLOT_ID 的最大数量为 2700000。
INDEX_VALUE 对于每个 PLOT_ID 将在 {0-30000} .
在大多数情况下,我需要一次与 PLOT_ID 相关的所有数据。 所以我正在使用这样的查询。
SELECT INDEX_VALUE,VALUE_1,VALUE_2,VALUE_3 FROM PLOT WHERE PLOT_ID='p01';
但它需要一些时间。 所以我拆分查询如下所示。
SELECT INDEX_VALUE,VALUE_1,VALUE_2,VALUE_3 FROM PLOT WHERE PLOT_ID='p01' and INDEX_VALUE <=1000 and INDEX_VALUE >=0;
SELECT INDEX_VALUE,VALUE_1,VALUE_2,VALUE_3 FROM PLOT WHERE PLOT_ID='p01' and INDEX_VALUE <=2000 and INDEX_VALUE >=1001;
....
....
....
SELECT INDEX_VALUE,VALUE_1,VALUE_2,VALUE_3 WHERE PLOT_ID='p01' and INDEX_VALUE <=30000 and INDEX_VALUE >=29001;
而且它的响应速度相当快。
可能是什么问题?
我的 cassandra 只有一个节点。
这是由于 cassandra 配置造成的吗?
对我的设计有什么建议吗?
【问题讨论】: