【发布时间】:2015-05-22 16:23:43
【问题描述】:
所以我正在为一个新项目生成工作流。在第一阶段,将有一个 C/C++ 代码生成大量数据(约 1TB 基于测试用例的二进制文件格式)。然后,这些数据将被导入到数据库中,以便与将驻留在那里的另一个数据集进行比较。
我的问题是打开数据库软件的端口并直接写入那里会更快,还是磁盘写入许多小文件(约 10 亿)并稍后导入数据库会更快? C 代码将在时间有限的集群上运行,因此需要快速完成。
【问题讨论】:
-
我看不出写入中间文件会更快,因为无论如何您最终都必须将它们写入数据库。真正确定的唯一方法是编写两者并对其进行基准测试。
-
这是一个模棱两可的问题,它取决于您的数据结构、与数据库的连接类型、数据库的类型、SSD/HDD 的类型,以及文件系统
-
此决定的一部分将取决于数据库软件的位置和特性。您应该将一个简单的系统模型和接口放在一起作为起点。我的第一印象是,管理数以百万计的小文件会带来一些仅使用数据库系统就可以消除的麻烦。
-
1 十亿 个文件?这是杀死性能的好方法。 1000个怎么样?