Es gibt wahrscheinlich einen Leistungsunterschied, aber es ist wahrscheinlich ziemlich klein.
Folgendes habe ich gefunden (alles basiert auf Google Docs für Python ).
BigTable unterstützt PolyModel-Informationen nicht nativ. Stattdessen wird es mit einer 'class'-Eigenschaft implementiert. Wenn Sie also versuchen, eine Suche durchzuführen, um beispielsweise eine Basisklasse zu finden, suchen Sie nach dieser 'class'-Eigenschaft.
Bei allen Abfragen, die die PolyModel-Klasse verwenden, wird ein zusätzlicher Filter angewendet, der nach der angegebenen Klasse filtert (mithilfe der Eigenschaft 'class').
Alle für eine PolyModel-Klasse erstellten Indizes müssen die zusätzliche Spalte "class" berücksichtigen.
Im Wesentlichen kümmert sich die PolyModel-Klasse selbst um die Eigenschaft 'class', fügt sie in Abfragen ein und verwendet sie für andere Abfragen. Davon abgesehen funktioniert es identisch mit der normalen Verwendung von BigTable.
Der Unterschied besteht also darin, nur eine zusätzliche Spalte hinzuzufügen und zu pflegen.
Gibt es einen Leistungsunterschied? Ja, wahrscheinlich schon. Jede Spalte, die Sie einem Datenbanksystem hinzufügen, wirkt sich auf die Leistung aus. Aber ist es wichtig? Wahrscheinlich nicht.