我需要在我的数据库中存储大型(30K 未压缩)JSON 字符串。我正在使用 gzip 压缩字符串,因此使用 MySQL 的 BLOB 数据类型来存储它。但是,只有 5% 的请求包含唯一数据,并且只有唯一数据需要存储在数据库中。
我的方法如下。
array_multisort
数据(数组[a, b, c]
实际上与 相同[a, c, b]
)。json_encode
数据(json_encode
比 快;我们需要第3serialize
步的字符串数组表示)。sha1
数据(比 慢md5
,但不太可能发生冲突)。- 检查数据库中是否存在哈希。
- 存在:不插入数据。
- 新:gzip 数据并将其存储在散列中。
这有什么(除了首先将 JSON 数据存储到数据库之外)听起来很可疑或应该以不同的方式完成吗?
该数据库每月创建大约 1kk 条唯一记录。