【问题标题】:What's a reasonable maximum size that a cross-platform application should allow a text file to get?跨平台应用程序应允许文本文件获取的合理最大大小是多少?
【发布时间】:2009-09-07 14:50:04
【问题描述】:

跨平台应用程序允许文本文件获取的合理最大大小是多少?我知道这是一个过于简单的问题,所以请允许我解释一下。

我的团队正在为客户实现一个批量加载接口,以便将数据加载到我们的数据库中。它将写出一个 CSV 文件,然后将该文件加载到适当的数据库中(此时是 Oracle 或 SQL Server)。我们可能会处理相对较多的记录。

在开始将这些文本文件拆分为多个文本文件之前,我应该对这些文本文件的大小进行限制吗?目前,我们正在部署到 Linux 和 Windows,但我们也有使用 OS X 的开发人员。另外,我们的一些客户使用这些操作系统的版本有些过时。我想这取决于我们要连接的操作系统、文件系统和 RDBMS。为了简单起见,我不想尝试为每个单独的平台设置一个限制,而是只设置一个总体限制(只要该限制不过分限制)。这甚至是必要的,还是我可以设置一个上限?

【问题讨论】:

  • 这个问题真的是python特有的吗?如果是,那么您可能应该在文本中提及,否则我建议您删除 python 标签。
  • 同意2GB。但是您可能会发现(通过运行压力测试)在特定文件大小之后您的性能开始受到影响。那么您可能希望此时开始拆分您的 CSV 文件。

标签: cross-platform filesystems text-files bulkinsert


【解决方案1】:

大多数现代系统在处理数 GB 的文件时都没有问题,但如果您要谨慎,那么设置 2GB 的限制可能会很有用:

  • 即使是稍微过时的文件系统也可以存储 2GB 文件(例如 FAT16)
  • 2GB 可以用一个有符号的 32 位整数来寻址,这个整数的使用频率比人们想象的要多

对于文件系统部分,this comparison of file systems 可能有用(不过,它也列出了很多未真正广泛使用的系统)。

【讨论】:

  • +1,但我要补充一点,如果您的文件大于 2GB,那么您的工作方式肯定有问题。 =)
  • @Clement:我不会这么说。有时将图像和其他文档存储在数据库中是合理的,然后数据库转储可以轻松变得大于 2GB。即使对于没有 LOB 的 DB,2GB 也不是不合理的转储大小
  • 嘿...所以 FAT16 只是“稍微”过时了? :-)
  • @Jason:呵呵……是的,它很古老,但仍然令人惊讶地经常使用。
猜你喜欢
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多