我想存储1000个符号的股票交易数据。数据实际上是从文本文件转换的,因此不需要插入和更新;只需要只读访问。
数据基本上是这样分组的:每个符号都有许多记录:{timestamp, price, quantity},每个记录代表一个交易。
一个符号的数据上限大约为5条记录/秒,每个工作日8小时,即5x60x60x8 =144 K/天。也就是说,1K符号每天将产生144百万条记录。
对数据的大多数操作应该如下所示:
现在的问题是:在这种情况下,数据库的最佳设计是什么?
数据库可以是MySQL或MySQL。总时间-最多5年。谢谢!
发布于 2013-10-29 10:45:21
第三种选择是最好的1,你需要高的阅读性能和几乎可以忽略不计的写入。
您的需求最适合于NoSql数据库。没有关系的单个表;MySQL会过度使用。更多信息-> NoSql数据库
发布于 2013-10-31 20:13:23
这是大量的数据。请看NoSQl。
使用SQL,以下是一些基本想法:
将所有价格数据放在一个表中,使用尽可能小的数据类型。使用SymbolId (int)引用符号、所需的最小日期时间类型、所需的最小货币类型。
去有机化。制作第二张表,每天的最小/最大值/avg和SymbolId。
研究水平分区和使用索引。
发布于 2013-10-29 16:47:46
因为您将从一个日期运行到另一个日期,所以我根本不会将表拆分。相反,学习更多关于切分的知识。下面是我将使用的模式:
symbols
id varchar(6) // MSFT, GOOG, etc.
name varchar(50) // Microsoft, Google, etc.
...
trades
id unsigned bigint(P)
symbol_id varchar(6)(F symbols.id)
qwhen datetime
price double
quantity double
...https://stackoverflow.com/questions/19655746
复制相似问题