2

我想将股市数据存储在 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 中的最佳方式是什么?

4

3 回答 3

1

听起来像是一张以 Symbol 作为主键的表。这应该为您提供符号上的聚集索引(加快速度)。

我认为拥有 6000 张桌子是个坏主意。您的 Select 查询不会太漂亮。

于 2012-09-22T19:28:40.193 回答
1

只要您可以动态管理 6000 个表的创建,您就可以根据要优化的查询类型选择任何一种方法。

6000 个表的问题不在于它的 SQL 丑陋或漂亮。(我的意思是,你真的在​​乎吗?)

在一张表上工作的 SQL 就像

Select <columnslist> FROM ScripDataTable
Where  scripcode = '<YourChoice>'
And .... 

SQL 在 6000 表上工作就像

Select <columnslist> FROM (Select tableName FROM TableDictionary
Where  tableName Like '%<YourChoice>%')
Where .... 

如果您决定向表中添加额外的列,则会出现每个脚本一个表的问题。我在 excel 中维持了大约 5 个票据的价格,最近决定添加大量从交易所发布的统计数据。有 5 个脚本,我花了一天时间手动添加它。

于 2013-05-02T08:19:34.150 回答
0

你绝对不想要 6000 张桌子。:) 一张桌子当然可以处理这个。您可能会考虑在 Symbol 和 Date 上创建索引,因为这就是您要查询的内容。希望有帮助。

于 2012-09-22T19:27:17.123 回答