我已经设置了一个Cassandra With 3节点。在客户端我使用Datasatx java驱动程序,我的查询就像
Select Abc from Cassandra where key =a and cluster_column<=10 limit 1;
正如我们在上面的查询中所看到的,我希望拥有最好的&#34; cluster_column&#34;哪个小于10。 我有宽行。因此,当数据在行中增长时,读取延迟会增加。
我只使用密钥缓存和级别压缩策略。 MemTable大小保持为2048 MB。
我可以调整哪些参数以在服务器级别具有较低的读取延迟。
请回复
提前致谢
答案 0 :(得分:1)
在Cassandra中,在匹配分区键时,获取整行,然后应用后续过滤器。 Cassandra中的单行可以在CQL表中看到多行,具体取决于您的(复合)主键。
在您的情况下,如果您经常对一小部分列执行选择查询,则可以使用以下解决方案之一:
更改分区键以包含更多列。这将使你的行变瘦。
确保将查询中始终使用的列添加到复合主键中。并仔细选择主键列,因为分区键仅支持等于和条件。
经常创建另一个包含列子集的表格。这将减少每个Cassandra行的大小,从而改善您的延迟。
我建议您阅读this blog post以更好地了解Cassandra中的宽行,并阅读this post以了解对Where子句的限制