我有一张有股票价格的桌子。模式如下所示:

在表“data_1d”中,有一个用于ticker_id和时间戳的唯一索引ticker_timestamp。以及timestamp_id的主要索引。
'data_1d‘中有6.3M行。
此查询采用4+ secs:
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或
select * from data_1d where and open_close>20我能做些什么来提高这里的表现呢?
谢谢。
编辑:我没有使用语句来创建表,但是从模式中应该可以理解它们。但这些是他们使用的钥匙
代码标记主键: id
timestamps_1d主键: id唯一索引:时间戳
data_1d ticker_id - references tickers.id timestamp_id - references timestamps_1d.id unique索引(或2 cols,ticker_id和timestamp_id):ticker_timestamps
发布于 2017-08-13 21:19:50
不要“正常化”连续值,如时间戳、浮点数、日期等。
“如果我搜索一个时间戳范围的话是20到30秒。”--给我们看看这个查询。因此,为了帮助您创建写模式和索引,让我们看看所有重要查询的示例。
“唯一指数:时间戳”
至少有一个不适合DECIMAL(7,2)的代码: NYSE:BRKA。INT不足以满足偶尔的音量。
select * from data_1d where and open_close>20有语法错误。
https://stackoverflow.com/questions/45390857
复制相似问题