我想知道结合使用 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/