我的Python应用程序数据结构是纯粹的关系。 我对最大表的估计是每年大约100亿行(所有其他表都非常小)。 每行大小约为20-30字节
对我来说什么是正确的数据库引擎?
答案 0 :(得分:2)
您可能会考虑我使用的以下内容,但当然这取决于您的数据是什么以及您的APP /用户需要如何与之交互。这不是一个详尽的清单,它只是我用过的东西。
Greenplum数据库是一个开源的分布式Postgres数据库。 http://greenplum.org/ 它很好地扩展并支持几乎所有Postgres的东西,除了我知道的全文索引
Apache Phoenix:Hadoop / HBase之上的开源sql层。它很好地扩展,但生态系统有点复杂(如Per Hadoop)。 Cloudera的Impala与此相似。 https://phoenix.apache.org/
Oracle分区(最好是在RAC上)。如果您能够负担许可证,Oracle分区允许以各种方式分割数据。如果您使用RAC,那么它还将提供并行查询执行
只需对数据进行分区(在任何RDBMS上)并将分区放在好磁盘上
这些是我实际使用的4个想法,请记住,在良好的硬件上,有一些表格分区,10B行并不是真的那么多,所以你可能只需要一个更好的盒子[s]并通过10G网络或更好的方式将其挂接到具有某种SSD的SAN。另外考虑将索引放在与db文件所在的单独磁盘上,如果可以负担,则始终使用SSD。
无论如何,HTH
MG
答案 1 :(得分:0)
每行30个字节,小于300GB,这是一个小型数据库,完全在Oracle或SQL Server Enterprise版本的功能范围内。您不需要Oracle RAC。
您需要注意应用程序设计和索引/分区。与DBMS的选择相比,查询和存储优化对性能的影响更大。