我想提高我的數據庫,簡化裝配的性能PostgreSQL的性能提示如下:散亂數據
編輯
- 一個表有3行(id_device,時間戳,數據)與複合B樹索引(id_device,時間戳)
- 1K設備發送數據的每一分鐘
插入速度非常快,因爲PostgreSQL只是按照收到的順序寫入行。但是,當試圖通過給定設備的連續時間戳獲取多個數據時,查詢速度並不快。我的理解是,由於收集數據的方式,表格每頁上的給定設備的行數不會超過一行。因此,如果我想要獲得給定設備連續時間戳的10k數據,PostgreSQL必須從磁盤讀取10k頁。此外,由於可以在任何1k設備上完成此操作,因此這些頁面不會保存在RAM中。
我試過CLUSTER表,它確實解決了性能問題,但是這個操作非常長(〜1天),並且鎖定了整個表,所以我放棄了這個解決方案。
我已經閱讀了有關分區的內容,但是如果每次連接新設備時都需要添加新表格,這就意味着需要大量腳本,並且在我看來,這有點容易出錯。
我對這個設置不是特別原創的事實很有信心,那麼我可以使用一個建議嗎?
感謝您的閱讀, 紀堯姆
如果您的查詢只檢查時間戳,則應該僅在時間戳上添加索引。 – Renzo
我編輯了這個問題,因爲我的設置過於簡單。還有一些數據可以檢索。 – gdlr