LoginSignup
0
0

More than 3 years have passed since last update.

Datastoreの対象プロパティから組み込みインデックスを除外する

Posted at

前提

  • Datastoreのインデックスはは2種に分類されるが、ここでは組み込みインデックスについてのみ取り上げる。
  • サンプルコードはGoを利用する。

インデックスの付与・除外

デフォルトではプロパティに自動的に付与される。タグを付与することで除外できる。除外しても既存プロパティのインデックスが削除されるわけではない。

type Task struct {
        Category        string
        Done            bool
        Priority        int
        Description     string `datastore:",noindex"`
        PercentComplete float64
        Created         time.Time
}
task := &Task{
        Category:        "Personal",
        Done:            false,
        Priority:        4,
        Description:     "Learn Cloud Datastore",
        PercentComplete: 10.0,
        Created:         time.Now(),
}

組み込みインデックス対象かを確認する

いずれもGCPコンソールから確認することができる。

  • GCPコンソール > データストア > エンティティ > GQL
  • GCPコンソール > データストア > ダッシュボード

GQL

組み込みインデックスから除外されている場合は、結果は返却されない。

SELECT * FROM `kind` WHERE <property_name> = "<value>"

統計情報

更新時間は約24~48時間とされているため即時確認はできないので注意が必要。(参考:Consoleで統計情報を表示する

組み込みインデックスのデータサイズ

インデックス エントリのサイズにある通り、エンティティのデータサイズの2倍のサイズが割り当てられる。

所感・課題

結果として公式リファレンスにある通りだが、複合インデックスの解説は多く取り上げられていた分、組み込みインデックスの解説が探しづらかったので整理した。インデックス付与対象のプロパティから除外する場合、過去の不要なインデックスは削除したくなるが、方法が見当たらなかった。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0