2010-08-16 5 views
0

Il s'agit d'une question générale d'indexation de magasin de données App Engine. Le magasin de données crée automatiquement des index pouvant être utilisés pour les requêtes de propriétés uniques simples (requêtes n'impliquant pas de clés composites).App Engine - Datastore - Indexing

Le surdébit de génération de cet index varie-t-il selon le type de données sous-jacent de la propriété de l'entité?

Essentiellement ma question se résume à:

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

Est-ce les frais généraux d'indexation par rapport à la propriété rollnumber moindre par rapport à celui de nom?

Répondre

4

L'espace nécessaire pour indexer une valeur comprend:

  • La taille de la valeur elle-même,
  • Si elle est longueur variable, comme une chaîne, allant de 1 à 3 octets pour stocker la longueur de la valeur
  • la taille du nom (par exemple, « rollnumber »), plus, encore une fois, quelques octets pour stocker la longueur
  • la taille est la clé
  • l'entité Quelques octets supplémentaires de surcharge

La seule chose surprenante ici devrait être que le nom est stocké avec chaque propriété indexée. Cela est dû au fait qu'il n'existe aucun nom de colonne défini statiquement - aucun schéma - dans le magasin de données, il est donc nécessaire de le stocker avec chaque valeur indexée.

+0

Y a-t-il une différence dans l'aspect de l'interrogation, c'est-à-dire que les performances de la requête dépendent du type de données de la propriété? D'après votre réponse, j'imagine pas - mais je voulais juste m'assurer. – Rahul

+0

Non, il ne devrait pas y avoir de différence significative de filtrage sur les différents types de données, sauf si vous parlez de filtrage sur une très longue chaîne, par exemple. –

Questions connexes