Fordi c* er sidste skrivegevinster, kan du blot beholde de nyeste versioner af hver række.
Du kan, som MSD foreslår, bruge writetime
at trække skrivetidspunktet. Men vær forsigtig, fordi dette er kolonnespecifikt, og du kan ikke bruge skrivetid på dine primære nøglekolonner. For eksempel i en tabel som følger:
cqlsh> create TABLE test.test ( a int, b int, c int, d int, primary key (a))
... ;
cqlsh> insert INTO test.test (a, b, c, d) VALUES ( 1,2,3,4)
... ;
cqlsh> select * from test.test
... ;
a | b | c | d
---+------+---+------
1 | 2 | 3 | 4
(2 rows)
cqlsh> insert into test.test (a,c) values (1, 6);
cqlsh> select * from test.test ;
a | b | c | d
---+------+---+------
1 | 2 | 6 | 4
(2 rows)
cqlsh> select writetime(a), writetime(b), writetime(c), writetime(d) from test.test
... ;
InvalidRequest: code=2200 [Invalid query] message="Cannot use selection function writeTime on PRIMARY KEY part a"
cqlsh> select writetime(b), writetime(c), writetime(d) from test.test ;
writetime(b) | writetime(c) | writetime(d)
------------------+------------------+------------------
1434424690700887 | 1434424690700887 | 1434424702420929
Ellers kan du tilføje en cql-kolonne med tidsstemplet:
create TABLE test.test ( a int, b int, c int, d int, touched_at timeuuid, primary key (a)) ;
Nogle hurtige benchmarking vil hjælpe dig med at afgøre, hvilken der er mere effektiv.