如何构建MySQL来存储股票信息?

时间:2012-09-22 19:23:23

标签: mysql database

我想在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中存储这些数据的最佳方法是什么?

3 个答案:

答案 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张桌子。 :)一个表当然可以处理这个。您可能会考虑在符号和日期上创建索引,因为这是您要查询的内容。希望有所帮助。