2015-08-03 105 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

如果必須使用文件。這將更好地使用一個文件。否則,您必須爲每個用戶打開和關閉文件。

相關問題