【问题标题】:Duplicate partitioning key performance impact in CassandraCassandra 中的重复分区键性能影响
【发布时间】:2014-08-14 06:01:43
【问题描述】:

我在一些帖子中读到重复分区键会影响性能。我有两个表:

CREATE TABLE "Test1" (               CREATE TABLE "Test2" (
  key text,                          key text,
  column1 text,                      name text,
  value text,                        age text,             
  PRIMARY KEY (key, column1)         ...
)                                    PRIMARY KEY (key, name,age)
                                     )

在 Test1 中,column1 将包含列名,value 将包含其对应的值。Test1 的主要优点是我可以添加任意数量的列/值对它无需通过每次提供相同的分区键来更改表。

现在我的问题是,如果我有数百万行并且每行中的列数最多为 50,那么这些表架构将如何影响读/写性能。如果我经常写入重复条目,它将如何影响压缩/修复时间?

【问题讨论】:

    标签: cassandra schema


    【解决方案1】:

    对于高效的查询,您需要点击一个分区(即在您的查询中拥有主键的第一个键)。在您的分区内部,每一列都按各自的聚类键以排序形式存储。 Cassandra 将数据存储为“排序地图的地图”。

    您的 Test1 架构将允许您获取键的所有列,或键的特定列。每个“条目”将位于一个单独的分区上。

    对于Test2,可以通过key、(key and name)或者(key, name and age)查询。但是,如果不指定名称(不添加二级索引),您将无法达到键的年龄。对于此模式,每个“条目”也将位于其自己的分区中。

    跨分区查询比命中单个分区的查询更昂贵。如果您正在寻找简单的键值查找,那么任何一种模式都足够了。我不会担心使用 50 列。第一个将使您可以直接访问特定列。后者将使您可以访问条目的整个数据。

    您应该更关注的是哪种结构可以让您执行所需的查询。第一个对二级索引不是很有用,但第二个会,例如。

    【讨论】:

      猜你喜欢
      • 2014-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 2021-10-29
      相关资源
      最近更新 更多