我需要在我的數據庫中存儲大型(30K未壓縮)的JSON字符串。我使用gzip壓縮字符串,因此使用MySQL的BLOB數據類型來存儲它。但是,只有5%的請求包含唯一的數據,並且只有唯一的數據需要存儲在數據庫中。將大型json字符串存儲到數據庫+散列表
我的方法如下。
array_multisort
數據(數組[a, b, c]
幾乎相同[a, c, b]
)。json_encode
數據(json_encode
比serialize
更快;我們需要字符串數組表示用於步驟)。sha1
數據(比md5
慢,雖然碰撞的可能性較小)。- 檢查數據庫中是否存在散列。
-
- 存在:請勿插入數據。
- 新功能:gzip數據並將其存儲在散列中。
是否有這事(除了JSON數據存儲到數據庫中的第1名),聽起來腥或應該做不同的方式?
數據庫每個月都有大約1kk獨特的記錄被創建。
聽起來像是一個很好的方法 – Scuzzy
有多大? – Sysyphus
30k未壓縮。自然地,由於它是純文本數據,因此更少。 – Gajus