2011-05-28 59 views
2

我即將開始爲Windows開發「time machine」。我需要在表格中存儲很多記錄。每次執行備份時,我都會寫入大約50,000條記錄,因爲這是我的計算機中有多少個文件(每個記錄與存儲文件無關,記錄將包含每個文件所在的路徑)反正我不' t知道我是否可以使用XML來存儲我的記錄,因爲我的查詢不會很複雜,而且更容易部署與創建本地數據庫,因爲我不知道它是否會更有效,因爲即使查詢將會變得簡單我將要處理大量的數據。此外,我不知道本地數據庫是否可以大於2GB,並且我估計如果經常使用一年,數據庫將大約爲3GB。需要爲我的應用程序保存大量記錄...我應該使用本地數據庫instad嗎?

我更喜歡使用XML並使用Xpath來執行查詢,以便更容易地部署我的應用程序。但是,如果創建本地數據庫變得更加高效,並且XML將減慢我的應用程序,因爲我有這麼多記錄,那麼我將創建一個本地數據庫。任何其他建議將有所幫助,也許我需要做別的。

回答

6

看看SQLite

這是嵌入式但功能強大的數據庫。您不需要安裝SQL Server實例。
您可以將此數據庫視爲具有特定API的文件。 API允許您針對此文件運行SQL查詢。

+0

+1我還沒有使用過SQLite--但是佔用空間小,體面API和良好性能的任何東西都是一個好主意。 – 2011-05-28 04:58:21

+0

我認爲一個指向C#綁定的指針會有幫助(因爲我對C#一無所知,我只能猜測這是正確的:http://system.data.sqlite.org/index.html/doc/trunk/www /index.wiki – msw 2011-05-28 05:02:36

2

SQL Server 2008 R2 Express允許數據庫最大容量爲10GB - 所以根據您的估計空間要求,這可能是值得考慮的。

將數據存儲在某種形式的數據庫而不是XML中會更好 - 因爲後者將快速增長到查詢速度變得非常緩慢和內存密集的程度。

+1

放大:XML可用於數據交換或人類可讀性XML的一塊不是數據庫,它只是一個xml的blob,是用於存儲機器訪問數據的最不實用的方法之一,查詢。 – msw 2011-05-28 04:57:41

1

當您嘗試訪問數據時,使用XML存儲大量數據將需要大量的內存使用量。它在存儲空間使用方面效率也不高。我會推薦使用SQL的一個版本。您可以使用Microsoft SQL的某個Express版本,也可以使用開源SQL語氣,如MySQL。

當您正在查看存儲大量信息時,您需要查看關係數據庫。如果您真的不想走這條路線,您可以考慮將每個備份存儲在它自己的XML文件中。這將允許更多的可移植性,並且在訪問存檔數據時它會減少您的內存佔用量。

相關問題