在 Cassandra 列中使用驼峰命名法对性能的影响

Performance impact in using camelCase in Cassandra columns

我知道,Cassandra一般会将列名全部转为小写

在 Cassandra 的列名中使用驼峰式命名是否会对性能产生影响?

我在列中使用了双引号,并且我能够将列名存储在驼峰命名法中,如下所示

CREATE TABLE test (
  Foo int PRIMARY KEY,
  "Bar" int
);

使用双引号存储列名是否会对性能产生影响?

我认为没有影响。我会说 CQL 的不区分大小写的性质仅用于简化查询的目的,正如您从这个答案中看到的那样:

此外,由于 Java(这是编写 Cassandra 的语言)中小驼峰式的偏好,似乎有这种行为的动机。请参阅本 GitHub 期中的讨论:https://github.com/reuzel/CqlSharp/issues/28

Space 明智的没有。性能明智,不。 (好吧,即使假设你必须连接双引号,如果你使用准备好的语句,你将发送一次,所以它可以忽略不计)

在 Cassandra 3 上,名称只在 sstable 的表头中写入一次(参考:http://thelastpickle.com/blog/2016/03/04/introductiont-to-the-apache-cassandra-3-storage-engine.html)。

必须始终提供双引号(例如 CQLSH)变得很奇怪,所以我通常不这样做。 此外,从 Thrift 开始并迁移到 CQL 的旧集群有很多。因此,为了避免混淆来源(但有更好的方法来验证这一点),最好不要使用引号。

对性能没有影响。 CQL 将未加引号的标识符小写。 我知道这可能会给开发人员带来麻烦,因为它可能很容易处理骆驼或混合情况,但如果您试图通过 API 访问 table 那么您可能已经定义了 class 映射到 table。在通过 API.

访问时,我没有看到任何需要更改 table 名称等的开销

此外,当您拥有更大的开发团队时,将列命名为小写或使用下划线而不是驼峰式大小写被视为一种良好的数据建模实践。这是 cassandra 默认完成的。如果您真的需要外壳,那么只需使用双引号。