私はベストプラクティスを知らない。しかし私は私のために働くものを共有することができます。
私がオブジェクトを扱っている場合は、longtext
カラムにbase64(文字数の長さをbase16より短くする)を格納してgzipとして保存することをお勧めします。
バッファーとして保存すると、それらをデータベースからコピーする方法がないと思うので、それらを文字列として保存すると便利です(実際にはトラブルシューティングに役立つことがあります)。あなたのオブジェクトにそれらを翻訳してください - 少なくとも、私はそれを行う方法を見つけていません。例えば
(そうでない場合はnew Buffer()
を使用し、Buffer.from()
構文についてNodejs 6+を想定):
const obj = {};
const zip = zlib.gzipSync(JSON.stringify(obj)).toString('base64');
そして、アンドゥ:
const originalObj = JSON.parse(zlib.unzipSync(Buffer.from(zip, 'base64')));
longtext
は〜4GiBに等しいので、あなたがヒットべきではありませんあなたが大量のオブジェクトを持っていない限り、制限です。しかし、あなたは他の場所で効率の問題があると思います。
注:明らかに、1つの行にパックされています(つまり、zip、解析、バッファなど)。
1行でロットが失敗する可能性があります。
ですので、適切に処理してください。