web-dev-qa-db-ja.com

ロングブロブよりも大きいものは何ですか?

longblobはMysqlの最大のデータ型です。 4GB(ロングブロブ)より大きいものを保存したい場合はどうすればよいですか?.

Mysql v-5について話している。+

3
jcho360

LONGBLOBの使用は、最大のmax_allowed_pa​​cketが1GBしかないという事実に照らして非常に危険な場合があります。

2006年8月に、誰かが同様の質問をしました。 でPeter Zaitsevは次のように述べています。

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

理論的に見てわかるとおり、約4GBです。

ただし、デフォルトでは16Mであるmax_packet_sizeによっても制限されます。

100MBを超えるblobを使用する場合は、十分に注意します。 MySQLは、ブロブ処理のためにサーバーに割り当てられたこのサイズのメモリの約3倍を必要とします。

私はPostgreSQL DBAではありませんが、次の提案に挑戦する必要があります。

  • 大きなオブジェクトを格納する必要がある場合は、PostgreSQLを使用する必要があります。PostgreSQLには、外部属性ストレージテクニック(TOAST)と呼ばれるストレージインフラストラクチャがあるためです。これにより、SQL処理に対して行が大きくなりすぎないようにすることができます。
  • MySQLを使用する必要がある場合は、BLOB自体よりもURLファイルリンクを保存する方がはるかに優れています。
6
RolandoMySQLDBA

本当にmysqlに保存したい場合は、チャンクを使用して保存することができます。つまり、データを取得してチャンクでデータベースに保存するアルゴリズムを作成します。このため、データを取得するときにプログラミングが少し難しくなります。 、反対のことをしなければならないので、このタイプのテクニックはあなたの問題を解決することができます

1
serup