From what I’ve understood, App Engine indexes are costly both in terms of increased overall storage size and by slowing down your writes.
But do indexes only cost when they’re actually used in queries and are explicitly defined in index.yaml? Or do properties such as StringProperty cost more than their non-indexed counterpart (e.g. TextProperty) simply by existing, even though they’re not used in index.yaml?
There are built-in/default indices which would contribute overhead even if you don’t explicitly define any additional indices in your index.yaml file. Thus you should use
TextPropertyinstead ofStringPropertyfor a field if you know you will never need to filter on that field.Details on these implicit indices are provided by the article How Entities and Indices are Stored.