在大多数关于Cassandra的文档中,我读到这些表可以被认为是:
Map<PrimaryKey, SortedMap<ClusteringKey>>
因此,我希望PrimaryKey的访问类似于O(logn(。但是ClustringKey呢(很明显,当在查询中也指定了PrimaryKey时(?
我的意思是:搜索
where primarykey=someval and clusteringkey=some_clustering_val
无论"anotherval"值是在基于clusteringkey排序的行的末尾还是开头,它都会是O(logn(+O(log n(吗?
我找不到关于如何从行中实际提取数据的适当文档。。。
读取路径在DSE的体系结构指南中有描述。
这里有多种因素会影响数据访问成本(仅列出其中一些(:
- 分区通常在多个SSTables之间划分-当您执行更新、插入不同的聚类键等时。只有当压缩过程将数据移动到单个SSTables中时,它才会变成您所描述的结构
- 数据以压缩的形式存储——您需要解压缩整个数据块以访问特定集群列的数据