sql >> データベース >  >> RDS >> PostgreSQL

最後に触れた時間をCassandraに保存するための最良の方法

    c *は最後の書き込みが優先されるため、各行の最新バージョンを保持するだけで済みます。

    MSDが示唆しているように、writetimeを使用できます。 書き込みの時間をプルします。ただし、これは列固有であり、主キー列に書き込み時間を使用できないため、注意してください。たとえば、次のような表で:

    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
    

    それ以外の場合は、タイムスタンプ付きのcql列を追加できます:

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

    いくつかの簡単なベンチマークは、どちらがよりパフォーマンスが高いかを判断するのに役立ちます。



    1. postgresql 9.5:スペースに基づいて文字列を2つのフィールドに分割しようとしています

    2. MySQLでINT(1)とTINYINT(1)を使用することに違いはありますか?

    3. Access2016のデザインビューでテーブルを作成する方法

    4. Soundex(または同様の)`Closeness`で並べ替え