java - Cassandra java 查询性能 count(*) 或 all().size()

标签 java cassandra cassandra-2.0

我想知道结合使用 apache cassandra 和 java 哪个更快。我有以下选项来获得我的结果:

Statement s = QueryBuilder.select().from("table").where(QueryBuilder.eq("source",source);
ResultSet resultSet = session.execute(s);
if (resultSet.all().size() == 0) {
  //Do Something
}

实现我的计数的第二个选项是:

ResultSet rs = session.execute("SELECT COUNT(*) as coun FROM table WHERE source = '"+source+"'");
Row r = rs.one();
if (r.getLong("count") == 0) {
  //Do Something
}

在每个查询中,最大计数是 1。现在我的问题是,一般情况下会更快。

最佳答案

我在多个表上测试了几个查询,带有 count(*) 的版本比使用 resultSet.all().size() == 0 快得多。我使用 CQLSH 尝试以下查询哪个更快,哪个应该等于 java 的:

SELECT COUNT(*) as coun FROM table WHERE source = '...';

较慢的:

SELECT * FROM table WHERE source = '...';

关于java - Cassandra java 查询性能 count(*) 或 all().size(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32585575/

相关文章:

java - 如何在 Java 中导入 openssl 生成的证书?

java - lucene 3.5.0 索引时出现堆栈溢出错误

java - Cassandra 无法运行 - 在 Windows 上使用 Intellij

java - Spark Sql 查询失败

java - Cassandra 批量加载器

java - 如何在隐身模式下执行 URLConnection 请求

java - 如何查找 xpath 或查找标记输入的元素并在 selenium 中键入 ='image'

Cassandra:我可以为像 sql 这样的列设置默认值吗

python - 当 RF = 2 时 Cassandra 在所有节点上复制数据

amazon-ec2 - Cassandra 集群许多小节点与较少的大节点