さまざまなデバイスの現在のGPS位置を取得するために、ウェブスクレーパーの小さなコレクションを使用しています。歴史的な記録も残したいです。データを2回保存せずにこれを行うための最良の方法は何ですか?今のところ、2つのテーブルがあり、どちらも次のようになっています。
Column | Type | Modifiers | Storage | Description
---------+-----------------------------+---------------+----------+-------------
vehicle | character varying(20) | | extended |
course | real | | plain |
speed | real | | plain |
fix | smallint | | plain |
lat | real | | plain |
lon | real | | plain |
time | timestamp without time zone | default now() | plain |
1つは、という名前gps
で、もう1つは。という名前gps_log
です。これら2つを更新する関数は、2つのことを実行します。最初にonを実行INSERT
しgps_log
、その後、UPDATE OR INSERT
(ユーザー定義関数)をonで実行しgps
ます。SELECT
ただし、これにより、現在のデータに簡単にアクセスできる以外の目的で二重に保存するという無意味なケースのように思えます。
gps_log
関数を使用して、それぞれの最新のエントリのみを選択させる簡単な方法はありvehicle
ますか?現在、 1397150gps_log
行が増加し、15分ごとに約150行になるため、パフォーマンスが問題になる可能性があることに注意してください。
PerlDBIを介したPostgreSQL8.4の使用。