第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按查詢優(yōu)化組以檢索每個用戶的最新行

按查詢優(yōu)化組以檢索每個用戶的最新行

HUWWW 2019-06-06 16:02:52
按查詢優(yōu)化組以檢索每個用戶的最新行下面是Postgres 9.2中用戶消息的日志表(簡化形式):CREATE TABLE log (     log_date DATE,     user_id  INTEGER,     payload  INTEGER);它包含每個用戶和每天最多一條記錄。每天大約有500 K記錄,持續(xù)300天。每個用戶的有效載荷都在不斷增加(如果這很重要的話)。我希望在特定日期之前有效地檢索每個用戶的最新記錄。我的問題是:SELECT user_id, max(log_date), max(payload) FROM log  WHERE log_date <= :mydate  GROUP BY user_id非常慢。我也嘗試過:SELECT DISTINCT ON(user_id), log_date, payloadFROM logWHERE log_date <= :mydateORDER BY user_id, log_date DESC;它有著相同的計劃,而且同樣緩慢。到目前為止,我有一個單一的索引log(log_date)但沒有多大幫助。我有一個users包含所有用戶的表。我還想為一些用戶檢索結果(payload > :value).還有其他的索引,我應該使用它來加快速度,或任何其他的方式來實現我想要的嗎?
查看完整描述

3 回答

?
www說

TA貢獻1775條經驗 獲得超8個贊

也許一個不同的指數會有所幫助。試試這個:log(user_id, log_date)..我不確定Postgres會在distinct on.

所以,我會堅持這個索引,并嘗試這個版本:

select *from log lwhere not exists (select 1
                  from log l2                  where l2.user_id = l.user_id and
                        l2.log_date <= :mydate and
                        l2.log_date > l.log_date                 );

這應該將排序/分組替換為索引查找??赡軙?。


查看完整回答
反對 回復 2019-06-06
  • 3 回答
  • 0 關注
  • 627 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號