2013-01-24 26 views
1

我建立Python中的财务应用上做证券价格时间序列分析(除其他事项外)。主要使用Numpy,SciPy和pandas在Python中完成繁重的工作(pandas具有SQLite和MySQL的接口)。用Web界面来呈现结果。将会有几百GB的数据。MySQL的诉SQLite,让基于Python金融web应用程序

我很好奇数据库在性能,访问数据(查询)的方便性和与Python的接口方面更好的选择是什么。我已经看过有关SQLite v。MySQL的一般优点和缺点的文章,但我正在寻找更为特定于Python应用程序的反馈。

回答

10

正确的答案是PostgreSQL。对于大多数平台,它只是作为易于安装的MySQL的,但它是一个更好的数据库,当它涉及到处理大量的数据,你在做它的特别是对MySQL的改善。

我甚至不会开始考虑在SQLite中处理几百GB的数据。

+2

当然不是当“财经”或“分析”中的要求。 –

+0

@ IgnacioVazquez-Abrams:的确如此。 –

+0

+1。尽管普遍同意答案 - OP已经说明了他为什么要考虑MySQL和SQLite的原因。在他的情况下,我会投票支持MySQL。 –

0

SQLite非常适合嵌入式数据库,但对于需要一次访问多个进程的任何内容来说,它并不是很棒。出于这个原因,你的应用程序不能被认真对待。

MySQL是一个更好的选择。我也同意Postgres会是更好的选择。

0

对于许多以研究为导向的时间序列数据库加载,在数据库中执行尽可能多的分析要比将数据复制到客户端并使用常规编程语言进行分析要快得多。在网络上复制10G比从磁盘读取慢很多。

关系数据库本身并不支持时间序列操作,因此在安全价格上产生一些简单的安全回报,这在MySQL和SQLite中都是不可能或非常困难的。

Postgres具有窗口操作,就像其他几个关系数据库一样;权衡是他们不会每秒做很多次交易。许多其他人使用K或Q.

我见过的金融服务Web应用程序使用多个数据库;原始数据被存储在“研究”数据库中,这些数据库被多重索引并且设计用于灵活性,而网络应用直接与内存中缓存和更高速度的RDB进行交互;权衡是数据必须从“研究”数据库复制到“生产”数据库。

相关问题