c *は最後の書き込みが優先されるため、各行の最新バージョンを保持するだけで済みます。
MSDが示唆しているように、writetime
を使用できます。 書き込みの時間をプルします。ただし、これは列固有であり、主キー列に書き込み時間を使用できないため、注意してください。たとえば、次のような表で:
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
それ以外の場合は、タイムスタンプ付きのcql列を追加できます:
create TABLE test.test ( a int, b int, c int, d int, touched_at timeuuid, primary key (a)) ;
いくつかの簡単なベンチマークは、どちらがよりパフォーマンスが高いかを判断するのに役立ちます。