如何解决cfs.inode的'二级索引基数'?

时间:2016-11-23 07:57:18

标签: cassandra cfs

在OpsCenter 6.0.3中,我遇到了以下问题

enter image description here

依次单击'Services' -> 'Best Practice Service' -> 'Performance Service - Table Metrics Advisor' -> 'Secondary indexes cardinality'后出现上图。

在DevCenter中查看的inode表如下所示:

enter image description here

据我所知,[inode] link会跟踪每个文件元数据和阻止位置。但是,我该怎么做才能解决这个问题?

OpsCenter版本:6.0.3 Cassandra版本:2.1.15.1423 DataStax企业版:4.8.10

1 个答案:

答案 0 :(得分:0)

不要将二级索引用于高基数列

  

高基数是指具有非常罕见或唯一值的列。高基数列值通常是标识号,电子邮件地址或用户名。具有高基数的数据表列的示例是具有名为USER_ID的列的USERS表。

使用高基数列索引数据文档doc:

的问题
  

如果您在具有许多不同值的高基数列上创建索引,则字段之间的查询将导致许多搜索非常少的结果。在拥有十亿首歌曲的表格中,通过作者(每首歌曲通常是唯一的值)而不是艺术家来查找歌曲可能效率非常低。将表作为索引的形式手动维护而不是使用Cassandra内置索引可能更有效。对于包含唯一数据的列,只要具有索引列的表的查询量适中且不在恒定负载下,为方便起见,使用索引有时性能良好。

解决方案:

在分区键中使用该列创建另一个表