我想在MySQL中存储股票市场数据。有大约6,000只个股可以存储。每个都有以下数据:
Symbol Date Open High Low Close Volume
ABCD 2012-09-22 50.00 55.25 48.73 51.23 34,002,212
每个交易日都有一个条目。
我看到它的方式,我可以创建一个表,每个条目创建一个巨大的表,或者我可以创建6,000个表,每个库存一个表。每天都会添加新条目。
我最终想要查询数据库,以便在两个日期之间给出两个或多个符号的数据。
在MySQL中存储这些数据的最佳方法是什么?
答案 0 :(得分:1)
听起来像是一个将Symbol作为主键的表。哪个应该给你一个符号聚集索引(加速一些)。
我认为拥有6000张桌子是一个坏主意。您的Select查询不会太漂亮。
答案 1 :(得分:1)
只要您可以动态管理6000个表的创建,您就可以选择哪种方法,具体取决于您要优化的查询类型。
6000个表的问题不在于它的SQL是丑陋的还是可爱的。 (我的意思是,你真的在乎吗?)
在一个表上工作的SQL就像
Select <columnslist> FROM ScripDataTable
Where scripcode = '<YourChoice>'
And ....
在6000表上工作的SQL就像
Select <columnslist> FROM (Select tableName FROM TableDictionary
Where tableName Like '%<YourChoice>%')
Where ....
如果您决定向表中添加额外的列,则会发生每表一个表的问题。我已经将excel的价格维持在大约5个档位,并且最近决定添加大量来自交易所发布的统计数据。用了5个手写,我花了一天时间手动添加它。
答案 2 :(得分:0)
你绝对不想要6000张桌子。 :)一个表当然可以处理这个。您可能会考虑在符号和日期上创建索引,因为这是您要查询的内容。希望有所帮助。