私はZodbを一般的な辞書形式(キー、値)の形式で使用していました。 しかし、私は次の警告メッセージだZODBに格納しながら:ZODBまたはPythonの大容量データストレージ用の他のデータベース
C:接続\ \のpython-3.5.2.amd64 \ libには\サイト - パッケージ\ ZODBを。 py:550: UserWarning:保存しているオブジェクト が大きいです。 (510241658バイト)
おそらく、あなたはブロブに保存する必要があるメディアを保存しています。
おそらく、 PersistentMappingやPersistentListなどのスケーラブルでないデータ構造を使用している可能性があります。
おそらく、永続性のないオブジェクトにデータを格納している可能性があります。 このような場合、データは、永続オブジェクトである を含むレコードに格納されます。
いずれにしても、この大きなレコードを格納することはおそらく悪い考えです。あなたが主張し、この警告を取り除きたい場合は
は、より大きな サイズを指定するZODB.DBコンストラクタ(または構成ファイル内 大レコードサイズオプション)の large_record_sizeオプションを使用します。
warnings.warn(large_object_messageの%(OBJ。クラス、LEN(P)))
は私がZODBで大容量のデータを格納する方法を提案するか、この目的
@WAS私は言及すべきことは、あなたが今やっていることは、一度に一度にロードしなければならない本当に大きなピックルを保管していて、ストリーミングできないことです。ショーストッパーであるHTTP Rangeリクエスト(プログレッシブストリーミング)などの場合大規模なプロダクションアプリケーションでZODBを使用している人は、BLOBを使用し、通常、Web /ネットワークアプリケーションで動作するファイルストレージイテレータにファイルデータをストリーミング配信します。これはZope 2でうまくいきますが、アプリケーションをバイパスしてBLOBに向かうフロントエンドのWebサーバーから直接X-Sendfileなどのアプリケーションを利用するためのアプローチもあります。 – sdupton