2016-08-29 2 views
2

タイムスタンプに基づいてルックアップを使用するパフォーマンスの高いクエリには、独自のタイムスタンプ(ミリ秒単位)を含める方が良いですか?documentdb文書の_tsは索引付けされていますか?

私は以前の投稿から、1970年以降の秒数で表されていることを理解しています。それがインデックスに登録されていないと思われるかもしれません。

+0

このタイムスタンプ属性(例:「createdTs」という名前)を持つクエリの例は、次のようになります。 –

答えて

4

_tsは、ユーザによって明示的にオーバーライドされないかぎり、デフォルトでDocumentDBで範囲インデックスおよび最大精度(-1)です。したがって、範囲クエリを実行することができます。

つまり、ミリ秒単位のより細かいタイムスタンプが必要な場合は、独自の高精度属性を使用することをお勧めします。たとえば、タイムスタンプをISO 8601形式の文字列として使用できます(例: "2016-08-29T21:48:38.334")。これは2つの目的に役立ちます。日付と時刻を人間が読めるようにし、その属性に対して範囲クエリを効率的に実行します。

SELECT r.id FROM root r WHERE 
r.createdTs > "2016-08-29T21:48:38.334" and r.createdTs < "2016-08-29T21:50:00.000" 
+0

範囲索引かどうか知っていますか? –

+0

...完全精度(-1)の場合 –

+0

はい完全精度でインデックスされた範囲です。あなたの質問を反映するように私の答えを更新しました。 –

関連する問題