0
我有一个卡桑德拉表,检查Cassandra中是否存在已过滤行的最佳方法?通过用户定义的聚合?
CREATE TABLE read_locks (
parent_path text,
filename text,
instance text,
PRIMARY KEY ((parent_path, filename), instance)
);
按道理我想通过下面的语句来检查任何锁的存在上的文件:
select count(*)>0 as result from read_locks where parent_path='...' and filename='...';
当然,我至少有2个实现。
select count(*) as result from read_locks where parent_path='...' and filename='...';
然后使用其他代码,即C++来检查结果的值。
或者
select * from read_locks where parent_path='...' and filename='...';
,然后使用其他代码,即C++,检查下面的语句的布尔值:
cass_iterator_next(rows)
我不知道哪个更好。
我想有一个用户定义的聚合函数来这样做,但我无法弄清楚。
请分享您的意见。
谢谢你在前进, 英
如果可以有多个实例(> 1000),并且您关心的是所有实例是否存在锁定,则应避免计数。 Count会导致所有的数据一次被读入,这对于大量的行会产生问题。至少使用*可以利用分页来控制每页读取多少数据。 – Kurt
好的建议。谢谢 –