2017-07-28 13 views
0

それぞれを個別に検索する予定がある場合、日付と時刻を格納するどの方法でこのデータセグメントをすばやく検索できますか?私はいつもdatetime型で格納しますが、この目的のために別の列(日付と時刻のデータベース型など)に格納する方が実際的でしょうか?postgresql ruby​​ on dateに日付と時刻を格納する方法

+0

ない直接あなたの質問に対する解決策が、[これは](https://stackoverflow.com/a/15350965/6611487)は、Railsの中 –

答えて

0

私は、任意のベンチマークを実行していないが、あなたが巨大なを行う上で計画している場合、私は唯一の異なる列として保存する必要性を見ることができる - と、私は大規模な意味 - アローン日の問合せ。あなたがそれらを別々に保存する場合は、timeフィールド上のタイムゾーンを保つ場合

timestamp (with time zone) 8 bytes both date and time, with time zone 
date      4 bytes date (no time of day) 
time (without time zone) 8 bytes time of day (no date) 
time (with time zone)  12 bytes times of day only, with time zone 

だから、それは少なくとも+より4バイト、または8を取ります。

クエリーする行が膨大になる場合は、Dateのみをクエリします。それは理にかなっています。そうでなければ、私はそれほど意味がないかもしれません膨大な数の行では、より多くの不必要なスペースを使用して、知覚される利点を相殺する可能性があるため)。

Datesを表すフィールドは、Dates(月まで - たとえば201704までのインデックス)を使用していますが、一意の月次レコードが反映されていて意味があるため、Year + Monthのみを反映するDate形式はありません。日付タイムスタンプの状況を処理するためにすでに非常に最適化されています。

+0

日時とタイムスタンプ移行タイプは、両方のタイムゾーンとPostgreSQLのTIMESTAMPにマップされているだけで罰金ですデータ型、右? – Anna

+0

私はそうは思わない、あなたはそれを正しく保存する必要があると思う。これはあなたがそれを理解するのに役立ちます:http://rpanachi.com/2016/07/04/ruby-is-time-to-talk-about-timezones –

関連する問題