大きな(30Kの非圧縮)JSON文字列をデータベースに保存する必要があります。文字列を圧縮するためにgzipを使用しているため、MySQLのBLOBデータ型を使用して文字列を格納しています。ただし、すべてのリクエストの5%のみに一意のデータが含まれており、データベースに保存する必要があるのは一意のデータのみです。
私のアプローチは次のとおりです。
array_multisort
データ(配列[a, b, c]
は実質的にと同じ[a, c, b]
です)。json_encode
データ(json_encode
より高速ですserialize
。ステップ3には文字列配列表現が必要です)。sha1
md5
データ(衝突の可能性は低いですが、より遅い)。- ハッシュがデータベースに存在するかどうかを確認します。
- 存在する:データを挿入しないでください。
- 新規:データをgzipで圧縮し、ハッシュに沿って保存します。
これについて(そもそもJSONデータをデータベースに保存することを除いて)怪しげに聞こえるか、別の方法で行う必要があるものはありますか?
データベースには、毎月約1kkの一意のレコードが作成されています。