2009-12-03 110 views

回答

3

這取決於你想要達到什麼樣的「效率」。

這裏就是我的意思是:

  • 你會成爲改變你的文本字符串的內容?
  • 你會做什麼樣的搜索?
  • 當你提取文本時,你會用它做什麼?

我的意見是,如果你不會更改內容,也不會執行太多分析,那麼最好使用數據庫。

+0

+1,詢問OP想要處理數據到底是什麼。但我會認爲,如果你要改變內容或分析很多,文件系統會更好。 – 2009-12-03 19:13:00

+0

我在計劃可以頻繁編輯內容並搜索字符串的各個位。我將一次提取整個文本塊。 – Robbie 2009-12-03 19:14:43

+0

我同意,如果內容頻繁變化,OP會比文件系統更好 - 我想我已經明確了! – 2009-12-04 16:21:52

1

取決於你如何訪問它們,但通常使用FS會帶來更好的性能。這是顯而易見的原因,數據庫是建立在FS之上的另一層,並直接使用FS,假設沒有額外的繁重處理(例如,有100個命名文件,而不是按特殊順序排列的一個大型文件)解析),將爲您節省DBMS操作。

+0

同意了,儘管它_really_取決於。特別是關於他們是否會被更改,以及是否需要重新設計靜態頁面 – rmeador 2009-12-03 18:59:54

+0

rmeador是對的,我假設這個問題只是關於查找和讀取數據。 TrippyD也有一點--10K記錄的數據量不夠大,實際上感覺不到任何差異。 – synhershko 2009-12-03 19:03:15

2

10k不是特別大,所以要麼很好。我會親自使用數據庫,因爲它可以讓你輕鬆搜索。

0

我在想,如果SQLite是兩全其美的,或者至少,這個大小的工作最好的數據庫。

0

真正的答案她是你要用這些字符串做什麼。

數據庫旨在能夠快速返回特定的記錄。如果你只是選擇SELECT * FROM Table,然後將它們連接在一起,那麼使用數據庫就毫無意義。

但是,如果您希望能夠搜索的數據之間有關係,那麼數據庫可能會更有效。

E.G.,您是否希望能夠在一組日期中提取一組用戶的所有文本記錄?查找匹配某些記錄的用戶的所有記錄?

這些類型的負載可能比天真的實現效率更高,即使它避免了某些訪問層,仍然可能比體面的更快。

0

有很多的考慮。正如其他人所說 - 任何一種方法對於少數10k行(數千)都可以正常工作。

但是你的應用的其餘部分是做什麼的?如果它完成了數據庫中的所有內容,那麼我也傾向於把它放在那裏;相反的情況也是如此。

你將如何選擇這些?你需要做複雜的文字搜索嗎?如果是這樣,數據庫可能不是最好的。或者,你會添加新的屬性,搜索這些屬性 - 還是將它們與其他表中的數據進行匹配?在這種常見的情況下,數據庫會更好。

如果您的數據非常龐大(數百萬行),並且您的性能要求不是非常高 - 您可能需要對它們進行壓縮並將它們存儲在文件系統中。

最後,數據質量有多重要?鑑於良好數據庫的功能,使用數據庫保證良好的數據質量要容易得多。

相關問題