这是我之前问题的重新提交:
我有一组有序的时间序列数据(股票分钟价格信息)。我当前使用 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% 确定这是否是一种“正确”的做法。
你能告诉我如何加快查询过程吗?