Cassandra数据库设计

primary key

只有primary key中涉及的column,partition key或者clustering key才可以作为查询条件。如果where条件中使用了没有被索引的字段,Cassandra会报错并不执行该语句。因此在Cassandra中,将所有字段都包含在primary key中是很常见的做法。

table order

这里有一个有趣的例子:对于一个表,默认按照正序排序。也就是说,查询结构总是正序的。如果你需要的是倒序排序后的结果,那么就以倒序排序的方式创建这张表。

create table tableName(

stock_id int,

trade_date timestamp

primary key(stock_id, trade_date)

) with clustering order by (trade_date desc)

如果你既需要正序结构,也需要倒序结果,那么就建立两张表,一张正序一张倒序。

从这里我觉得Cassandra这类数据库的设计思想和传统的关系型数据库有很大的不同。Cassandra并不在乎数据量的多少。可能是因为水平扩展很容易,因此在设计数据库时更多考虑的是如何提高查询速度,而不在乎制造更多的数据冗余。

在设计Cassandra数据库时,要充分考虑的是:可能会发生哪些查询。在定义好数据库后,那些需要扫描所有数据才能得到的结果的查询都是被禁止的。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值