PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

La meilleure façon de stocker l'heure de la dernière touche à Cassandra

Comme c* est la dernière écriture gagnante, vous pouvez simplement conserver les dernières versions de chaque ligne.

Vous pouvez, comme le suggère MSD, utiliser writetime pour tirer le temps de l'écriture. Mais soyez prudent car cela est spécifique à la colonne et vous ne pouvez pas utiliser le temps d'écriture sur vos colonnes de clé primaire. Par exemple dans un tableau comme suit :

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

Sinon, vous pouvez ajouter une colonne cql avec l'horodatage :

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

Une analyse comparative rapide vous aiderait à déterminer laquelle est la plus performante.