私のデータベースにjson_encoded
という文字列を格納する予定です。私はその長さを正確に伝えることはできませんが、それは長くなるとはっきりと確信しています。私の関心事は、これに使用するフィールドタイプは、blob
またはtext
ですか?MySQLでJSONのBLOBまたはテキストを使用する必要がありますか?
高速検索よりもできるだけスペースを節約できる場所を好んでいます。いずれにしても、インデックスを作成する必要がある他の列があります。
私のデータベースにjson_encoded
という文字列を格納する予定です。私はその長さを正確に伝えることはできませんが、それは長くなるとはっきりと確信しています。私の関心事は、これに使用するフィールドタイプは、blob
またはtext
ですか?MySQLでJSONのBLOBまたはテキストを使用する必要がありますか?
高速検索よりもできるだけスペースを節約できる場所を好んでいます。いずれにしても、インデックスを作成する必要がある他の列があります。
blob
は画像のようなもののために、バイナリなどtext
は、あなたのケースのために十分に良いことがあり、またはあなたはそれが本当に心配だ場合はさらに大きな空き容量を持つlongtext
を使用することができ、通常です。
json_encode
のデータを保存しているため、検索するとアプリケーションに役立つためにはまだjson_decode
を呼び出す必要があります。この場合、データ型の選択に問題はありません。
より良い方法は、関連するものをjsonの大きな文字列に格納するのではなく、データベース設計を正規化することです。
MySQLのドキュメントに記載されているように、5.7.8はネイティブなJSONデータ型がサポートされているためです。 JSON列に格納されたJSON文書の
JSONデータ型は、文字列列のJSON形式の文字列を格納するのこれらの利点を提供します。無効なドキュメントではエラーが発生します。
したがって、MySQLのマニュアルに記載されているように、テキストではなくJSONデータ型を使用する必要があります。
ご挨拶ありがとうございます。 –
私は約2年11か月後ですが、ウェブフックのペイロードに関しては、シリアル化されたJSONを保管しておくのを待っている間に保管しておくと良いでしょう。誰かが違った考えをすると、私はフィードバックが大好きです。 – Mave
Pinterestは 'text'にJSONを保存していますが、最近[この記事(半分スクロールダウン)]で公開しています(https://engineering.pinterest.com/blog/sharding-pinterest-how-we-scaled-私たちの - mysql - フリート)。 – DanFromGermany