PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Der beste Weg, um die zuletzt berührte Zeit in Cassandra zu speichern

Da c* der letzte Schreibvorgang gewinnt, können Sie einfach die neuesten Versionen jeder Zeile behalten.

Sie könnten, wie MSD vorschlägt, writetime verwenden um die Zeit des Schreibens zu ziehen. Seien Sie jedoch vorsichtig, da dies spaltenspezifisch ist und Sie keine Schreibzeit für Ihre Primärschlüsselspalten verwenden können. Zum Beispiel in einer Tabelle wie folgt:

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

Andernfalls können Sie eine cql-Spalte mit dem Zeitstempel hinzufügen:

create TABLE test.test ( a int, b int, c int, d int, touched_at timeuuid, primary key (a)) ;

Ein schnelles Benchmarking würde Ihnen helfen, festzustellen, was leistungsstärker ist.