Cassandra存储:读取速度更快?

时间:2013-06-26 12:24:40

标签: database nosql cassandra

我有两种存储数据的方法

用例: 存储每个产品的传入数据

1)CREATE COLUMN FAMILY product_data WITH comparator = TimeUUIDType AND key_validation_class=UTF8Type AND default_validation_class = UTF8Type;

这将存储

等数据
product_id|timeuuid1     | timeuuid2      |
A         | (some-value) |  (some-value)  |

2)CREATE COLUMN FAMILY product_data(product_id varchar, time TIMESTAMP, some-data varchar, key(product_id, time))

现在我的目标是获得更好的磁盘读取。在第一种情况下,整行位于同一位置,因此对于所有时间范围读取,磁盘读取都很快。在第二种情况下,一个产品的数据将在相同的副本中,但它们是否在相同的磁盘空间中?

1 个答案:

答案 0 :(得分:0)

第二个语句是第一个语句的CQL等价物:product_id将由引擎转换为行键,time值转换为列名。 CQL范围查询可以在time字段(即SELECT * FROM product_data WHERE product_id = ? AND time > ? AND time < ?)上进行,但不能在product_id上查询。建议使用第二种方法,因为CQL API已经略微优于Thrift,并且开发侧重于CQL改进。