2011-03-21 18 views
0

エンコードされていない文字列をPrimaryKeyとして使用するJDOエンティティがあるとします。このコード化されていない文字列が存在する可能性があるサイズには、実際的な制限がありますか?具体的には、Stringが非常に大きいものを使用できるかどうか疑問に思っています。 500 KB以上のサイズ。文字列の長さに上限がありますか?

私は、メモリ内オブジェクトサイズ(1MB)とデータストアエンティティサイズ(32MB)のアプリエンジンクォータを理解していますが、キーフィールド自体については不思議です。あなたが悪いデザインのために私をリッピングしてエンティティ関係を使用するように言う前に、これは理論的な質問であり、私が悪用するつもりはないものです。

ご協力いただきありがとうございます。

-tjw

+0

エンティティの一意の識別子を長い文字列にする場合は、ハッシュし、代わりにハッシュをキーとして使用することを検討してください。 –

答えて

1

キーの名前は500文字に制限されています。この制限は、Javaでもテストするのが簡単です。

スーパーロングキーの名前は良い考えではありません。インデックスを使用すると、より多くの領域が消費され、おそらく書き込みオーバーヘッドが増加します。

詳細はHow Entities and Indexes are Storedを参照してください。

+0

私は混乱しています。私は、その記事の暗号化されていないキーの制限がどこにあるのかわかりません。 –

+0

@Travisハードリミットは記載されていません。私はどこにでもリストされている厳しい制限を認識していません。私はこれをテストし、長いキー名が良いアイデアではない理由とインデックス/エンティティストレージの仕組みを読むためのドキュメントをいくつか考えてみることを提案していました。 08または09 IOの講演の1つで、プレゼンターは実際の制限があると言います(おそらくhttp://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore ) –

関連する問題