我考虑使用不同的元数据和内容设置集中存储文本文件(唯一行,键:值行),但仍然不知道使用哪种技术 - 像PostgreSQL或NoSQL解决方案一样的sql db。
大文件:每个100 - 600 MB,读取/写入100 - 500行的小查询
任何提示?
答案 0 :(得分:2)
实际上,SQL和NoSQL系统之间的选择取决于您运行的是哪种系统。与大多数NoSQL系统相比,SQL相对昂贵,因为它提供了所有ACID保证 - 原子性,一致性,完整性和持久性。如果您确实需要一致的数据,这些是保持数据一致性的重要保证。如果您不需要一致的数据(例如,您是缓存解决方案,或者您是Twitter),那么NoSQL系统的效率将变得更具吸引力。
针对您的具体用例;听起来好像有很多解决方案可以帮助你。修改文本文件的中间本身就需要(至少)在编辑指向磁盘后重写文本文件的整个部分(假设您确实希望文件在磁盘上是纯文本)。
您可以在SQL或NoSQL之上构建一个系统,它将文本文件表示为行或行的行,并且能够以面向行的方式对它们进行操作。但即使是那种类型的系统也可能对于大到100-600MB的文件效率低下。考虑将文件本身存储为SQL中的某种结构化数据;然后在用户请求完整文本文件时按需重新生成文件。