我试图找到一种方法来确定Cassandra DB中的表是否为空。
cqlsh> SELECT * from examples.basic ;
key | value
-----+-------
(0 rows)
我正在运行count(*)
以获取行数的值,但是我收到警告消息,所以我想知道是否有更好的方法来检查表是否为空(零行) 。
cqlsh> SELECT count(*) from examples.basic ;
count
-------
0
(1 rows)
Warnings :
Aggregation query used without partition key
cqlsh>
答案 0 :(得分:3)
聚集(例如count)对于您要完成的工作可能是一个过大的杀伤力,特别是使用星号通配符时,就好像表中有任何数据一样,查询将需要进行全表扫描。如果您有多个记录,这可能会非常昂贵。
获得所需结果的一种方法是查询
cqlsh> SELECT key FROM keyspace1.table1 LIMIT 1;
结果集将为空
cqlsh> SELECT key FROM keyspace1.table1 LIMIT 1;
key
-----
(0 rows)
结果集将有一条记录
cqlsh> SELECT key FROM keyspace1.table1 LIMIT 1;
key
----------------------------------
uL24bhnsHYRX8wZItWM6xKdS0WLvDsgi
(1 rows)