sql >> Database teknologi >  >> RDS >> PostgreSQL

Bedste måde at gemme sidste berørte tid i Cassandra

Fordi c* er sidste skrivegevinster, kan du blot beholde de nyeste versioner af hver række.

Du kan, som MSD foreslår, bruge writetime at trække skrivetidspunktet. Men vær forsigtig, fordi dette er kolonnespecifikt, og du kan ikke bruge skrivetid på dine primære nøglekolonner. For eksempel i en tabel som følger:

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

Ellers kan du tilføje en cql-kolonne med tidsstemplet:

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

Nogle hurtige benchmarking vil hjælpe dig med at afgøre, hvilken der er mere effektiv.



  1. Sådan fungerer SQLite Sum()

  2. hvordan man kombinerer to forskellige værdier fra én tabel for én kunde til én række

  3. Rails 3, will_pagete, random, gentagne poster, Postgres, setseed-fejl

  4. Få frekvensfordeling af et decimalområde i MySQL