2010-11-24 143 views
1

考虑到未来读取速度和存档的全局大小,什么是存储报价数据(开盘价,最高价,最低价,收盘价,成交量)的最有效方法?存储股票报价(金融)数据的最佳方法

XML ? But It is resource consumption 
Simple CSV comma separated ? 
Is Binary maybe the best way ? 

感谢

编辑:关于数据库,你是对的球员,但我想:他们是“好”的简单存储5类型的值(例如,SQLite的)?他们的架构是不是因为我的需要而“过大”?

+1

只要您提到对未来性能和可扩展性的担心,就会增加您的需求。这就是为什么每个人都建议使用数据库解决方案而不是XML等等。此外,您可能会发现数据模型会变得越来越大,越来越复杂,您将需要在一个实体中存储超过五个字段。 – 2010-11-24 20:25:29

+1

我想你需要了解平面文件,xml和数据库之间的关键区别。考虑到你会经常查询这些数据,最好的解决方案就是数据库。相同数量的信息可以存储在更少的空间中,数据库引擎可以为您处理所有查询。使用XML,您将拥有重复数据的gobs以及额外数据(所有这些重复的开放/关闭标记)的gobs。使用CSV不仅会导致数据重复,您必须编写自己的查询引擎来查询这些数据。 – 2010-11-24 20:26:05

回答

3

我会建议RDBMS(关系数据库管理系统)。我不确定为什么这不是您的选择之一。

RDBMSs正是为这种类型的东西创建的,例如速度和可扩展性。如果成本是一个问题,请考虑有许多免费的,开源的或免费的,但有限的RDBMS可用版本。

一些免费的RDBMS选项:

另一种选择:

如果您真的想避免使用数据库,但希望获得可靠的数据结构,则可以考虑使用XML serialized DataSet。这实际上给你一两件事情:1)人类可读的序列化格式和2)一个非常坚实的内存中表示,将有一段很好地扩展

回复编辑:

你的需求是只要您提到对未来性能和可扩展性的担心,就会增加规模。这就是为什么大家都建​​议使用db解决方案而不是XML等。

4

一个简单的标准化数据模型将很好地实现这个技巧。 XML的问题是它太冗长了。使用CSV,它不是标准化的,所以有很多重复的信息。

规范化的数据模型不仅会以有效的方式存储所需的数据,而且对这些数据的查询将非常重要,以及数据库真正擅长的数据。如果您已经设计好数据模型,那么您不会相信一个好的数据库引擎可以为您提供的结果的速度。

1

数据库。 sql server,mongo,oracle,sybase,postgres,mysql。根据您的需要,环境和预算,有多种风味可供选择。

1

我认为NoSql会给你带来不必要的速度。无论如何,您将无法处理大量的XML或CSV文件。