sql >> Base de Datos >  >> RDS >> PostgreSQL

La mejor manera de almacenar el último tiempo tocado en Cassandra

Debido a que c* es la última escritura gana, simplemente puede mantener las últimas versiones de cada fila.

Podría, como sugiere MSD, usar writetime para tirar del tiempo de la escritura. Pero tenga cuidado porque esto es específico de la columna y no puede usar el tiempo de escritura en las columnas de su clave principal. Por ejemplo, en una tabla de la siguiente manera:

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

De lo contrario, puede agregar una columna cql con la marca de tiempo:

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

Algunas evaluaciones comparativas rápidas lo ayudarían a determinar cuál tiene más rendimiento.