-1

我考虑集中存储具有不同元数据和内容设置(唯一行、键:值行)的文本文件,但仍然不知道要使用哪种技术 - 像 PostgreSQL 或 NoSQL 解决方案这样的 sql db。

大文件:每个 100 - 600 mb,读取/写入 100 - 500 行的小查询

有什么提示吗?

4

1 回答 1

2

实际上,SQL 和 NoSQL 系统之间的选择取决于您正在运行的系统类型。与大多数 NoSQL 系统相比,SQL 相对昂贵,因为它提供了所有 ACID 保证——原子性、一致性、完整性和持久性。如果您确实需要一致的数据,这些都是保持数据一致性的重要保证。如果您不需要一致的数据(例如,您是一个缓存解决方案或者您是 Twitter),那么 NoSQL 系统的效率就会变得更有吸引力。

对于您的特定用例;听起来好像没有很多解决方案可以帮助您。修改文本文件的中间部分本质上需要(至少)在编辑指向磁盘之后重写文本文件的整个部分(假设您实际上希望文件是磁盘上的纯文本)。

您可能能够在 SQL 或 NoSQL 之上构建一个系统,将文本文件表示为行或行块,并能够以面向行的方式对它们进行操作。但即使是那种类型的系统也可能对 100-600MB 大的文件效率低下。考虑将文件本身存储为 SQL 中的某种结构化数据;然后在用户请求全文文件时按需重新生成文件。

于 2012-12-27T17:34:30.400 回答