這是重新提交我的previous question:數據庫實現幫助:時間序列數據
我已下令時間序列數據(股票分鐘的價格信息)的集合。我目前使用PostgreSQL的數據庫結構如下:
symbol_table
- 在那裏我保留與symbol_id
作爲主鍵(串行)的符號列表。 time_table, date_table
- 時間/日期值存儲在那裏。 time_id/date_id是主鍵(串行/串行)。
我的主要minute_table
包含其中 date_id|time_id|symbol_id
是主鍵(從相應的表還外鍵)
使用這個主minute_table
我執行不同的統計分析,並保持其結果在一個單獨的表分鐘的價格信息,如one_minute_std
- 保留一分鐘的標準偏差量度。
我每天晚上都會用最新的收盤價當前價格信息更新表格。
在當前的實現中,我的表格包含所有符號,每個符號大約有50m記錄。主鍵被編入索引。
如果我想查詢all the symbols where closing price > x and one_minute_std >2 and one_minute_std < 4 for the specific date
,搜索大概需要3-4分鐘。
爲了加速這個過程,我正在考慮將每個符號分隔到自己的表中,但不是100%確定這是否是一種「正確」的方式。
你能否告訴我如何加快查詢過程?
謝謝你的回答!我將在我的db上實現這個。 – Timka
不幸的是,由於創建1000個分區(每個符號)沒有加快數據庫的速度,所以我無法提高速度...尋找不同的解決方案,可能的NoSQL解決方案 – Timka