2015-08-03 40 views
2

将所有用户数据保存到一个文件或使用他的数据为每个用户创建一个文件会更好吗?哪一个更快?将所有数据保存在一个文件或多个文件中?

编辑:为了解释如何使用该文件,它是由我的UserManager类管理的,当请求加载用户时,会为id匹配的行[id]寻找并读取属于该id的所有以下行。当它保存用户数据时,它会读取整个文件并应用更改,然后使用更改编写文件。

+4

最好不要使用文件。 – BackSlash

+6

都不是。使用数据库,这将是最快的。如果你坚持使用文件,选择更简单的方法。如果你不使用数据库,那么你并不是真的专注于性能。 – Kayaman

+0

猜测这不适用于NoSQL .. –

回答

3

我不会主张使用文件来存储数据。使用数据库(NoSQL或关系)。

如果你被迫使用一个文件(又是一个坏主意!),那么两者中更多的表现是从一个文件读取,如果你一次读取多个用户的信息,您只需打开一个流而不是多个流。写作也是一样。

编辑:

正如@BackSlash指出的那样,如果你只读/写一次一个用户,那么性能将始终是相同的。请参阅下面的注释

+1

'但是,如果您一次只读取/写入一个用户,则性能将保持不变。因为每次你都必须打开一个流。“不是真的。假设你有一个单一的文件,其中有很多用户的信息:你需要搜索特定用户的文件,所以在最坏的情况下,你必须阅读整个文件,这可能是一个沉重的操作,如果文件真的很大。如果OP在一次管理一个用户时,每个用户的一个小文件比搜索一个大文件IMO更好。 – BackSlash

+1

我认为你是对的。将适应答案。 – KernelKoder

0

将(用户)数据保存到文件可能会很慢。多个文件或一个。如果你缓存你的数据,它不一定是。

人们通常会转向为您做这些的解决方案,例如DataBase;) 它们很快并且为此而构建。此外还有很多例子。

如:https://github.com/saintedlama/passport-local-mongoose

使用Node.js的(与快递,护照,猫鼬(MongoDB的使用Node.js语言),...) 有一个在项目中的例子 只需安装的node.js,MongoDB的并运行示例

0

如果必须使用文件。这将更好地使用一个文件。否则,您必须为每个用户打开和关闭文件。

相关问题