sql >> Database >  >> RDS >> PostgreSQL

Beste manier om de laatst aangeraakte tijd in Cassandra . op te slaan

Omdat c* de laatste schrijfwinst is, kun je gewoon de nieuwste versies van elke rij behouden.

U kunt, zoals MSD suggereert, gebruik maken van writetime om de tijd van het schrijven te trekken. Maar wees voorzichtig, want dit is kolomspecifiek en u kunt geen schrijftijd gebruiken voor uw primaire sleutelkolommen. Bijvoorbeeld in een tabel als volgt:

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

Anders kunt u een cql-kolom met het tijdstempel toevoegen:

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

Een snelle benchmarking zou u helpen te bepalen welke beter presteert.



  1. Hoe DATE_ADD() werkt in MariaDB

  2. Versleutelen met PHP Mcrypt en ontsleutelen met MySQL aes_decrypt?

  3. Nummerpositie in string zoeken

  4. Mysql - conversatie vinden die alleen door twee gebruikers wordt gevoerd