0

これは、一般的なAppEngineデータストアのインデックス作成に関する質問です。データストアは、単純な単一プロパティクエリ(複合キーを含まないクエリ)に使用できるインデックスを自動的に作成します。

このインデックスを生成する際のオーバーヘッドは、エンティティのプロパティの基になるデータ型によって異なりますか?

基本的に私の質問は次のように要約されます。

def Person(db.Model):
  name = db.StringProperty()
  rollnumber = db.IntegerProperty()

名前のロール番号と比較した場合、プロパティのロール番号に関するインデックス作成のオーバーヘッドは少なくなりますか?

4

1 に答える 1

5

値にインデックスを付けるために必要なスペースは、次のもので構成されます。

  • 値自体のサイズ、
  • 文字列のように可変長の場合、値の長さを格納するために1〜3バイトの任意の場所
  • 名前のサイズ(例:'rollnumber')に加えて、長さを格納するための数バイト
  • エンティティのキ​​ーのサイズ
  • 数バイトの余分なオーバーヘッド

ここでの唯一の驚くべきことは、名前がすべてのインデックス付きプロパティとともに保存されることです。これは、データストアに静的に定義された列名(スキーマがない)がないため、すべてのインデックス値とともに保存する必要があるためです。

于 2010-08-16T20:43:02.547 に答える