![](/img/trans.png)
[英]Is this correct usage for loading a zip file into memory from Google Cloud Storage?
[英]Memory usage of file versus database for simple data storage
我正在為具有同步功能的 Javascript 應用程序編寫服務器。 客戶端創建和修改的文件和目錄需要同步到服務器(客戶端上所做的相同更改需要在服務器上進行,包括刪除)。
由於每個文件都在服務器上,我正在討論是否需要與每個文件對應的 MySQL 數據庫條目。 需要在每個用戶的每個文件/目錄中保留以下信息:
我可以將這兩條信息保存在文件中(例如,每個用戶目錄中的 .deleted 文件和 .modified 文件,其中包含文件路徑 + 時間戳)或數據庫中。
但是,我還必須適應 80mb memory 約束。 在文件存儲和數據庫存儲之間,為此目的,哪個內存效率更高?
編輯:文件必須存儲在文件系統中(而不是數據庫中),並且用戶對他們可以使用的存儲空間有配額。
只要文件數量少,文件系統變體可能會更有效 memory 明智,但該解決方案可能無法擴展。 數據庫經過優化可以做到這一點。 隨着文件和請求數量的增加,搜索文件系統、打開文件、搜索文檔將變得昂貴。
但是沒有人說你必須使用 MySQl。 像 Redis 這樣的 NoSQL 數據庫,或者像 CouchDB(您可以在其中保留文件本身並包含版本控制)之類的數據庫可能是更具吸引力的解決方案。
編輯:根據您的評論,我將按如下方式構建它:創建一個 API 抽象您想要執行的所有操作的后端。 然后使用 2 或 3 個操作來實現后端部分,這些操作對於文件系統和數據庫(或兩個)發生最多,或者可能更昂貴。 測試和基准測試。
在我看來,唯一可以確定的真正方法是構建一個測試系統並比較空間需求。 以編程方式生成一些隨機數據應該不會花費那么長時間。 有人可能認為文件系統會更高效,但數據庫可以並且可能會壓縮數據或對其進行重復數據刪除,或其他任何事情。 不要忘記,數據庫還可以更輕松地實現新功能,也許是訪問控制。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.