我有一张股票价格表。架构如下所示:
在表格< data_1d' ticker_id和timestamp有一个唯一的索引ticker_timestamp。并且是timestamp_id的主要索引。
< data_1d'中有~6.3M行。
此查询需要4秒以上:
select * from data_1d where timestamp_id=1387 and open_close>20
说明:
如果我搜索一系列时间戳,那就是20-30秒。
如果我只搜索一个标准,时间戳或open_close,则需要0.1-0.6秒。
例如:
select * from data_1d where timestamp_id=1387
OR
select * from data_1d where and open_close>20
我可以做些什么来提高效果?
感谢。
编辑:我没有使用statement来创建表,但是从架构中可以理解它们。但这些是他们使用的钥匙代号 主键:id
timestamps_1d 主键:id 唯一索引:时间戳
data_1d ticker_id - 引用tickers.id timestamp_id - 引用timestamps_1d.id 唯一索引(或2个cols,ticker_id和timestamp_id):ticker_timestamps
答案 0 :(得分:0)
不“规范化”连续值,例如时间戳,浮点数,日期等。
“如果我搜索一系列时间戳,那就是20-30秒。” - 向我们展示查询。就此而言,为了帮助您制作写入模式和索引,让我们看一下所有重要查询的示例。
“唯一索引:时间戳” - 当然你有两个不同的股票,时间戳相同?
至少有一个自动收报机不适合resource "aws_aws_security_group" "http_instance_sg"
:纽约证券交易所代码:BRKA。 DECIMAL(7,2)
仅适用于偶尔的音量。
INT
语法错误。