2016-04-13 13 views
2

Ich bin ein wenig verwirrt über den Unterschied zwischen Abfrage und Projektion Abfragen (dies ist in Bezug auf die neue Preisgestaltung, die in Kraft sein wird, Juli st). Sagen, dass ich eine Art wie diese:Verwandeln Sie Abfrage in Projektionsabfrage, um Kosten zu sparen

**POSTS:** 
post_id -index 
author -index 
post_message -index 
created -index 

Wenn ich alle Beiträge von einem Autor abfragen möchten werde ich N Beiträge abrufen, N die Anzahl der Beiträge ein Autor geschrieben hat sein. Also, wenn er 100 Beiträge geschrieben hat, werde ich 100 Leseanfragen für diese Abfrage aufessen. Kann ich einfach eine Dummy-Eigenschaft erstellen und dann die Abfrage in eine Projektionsabfrage umwandeln? Also füge ich eine Eigenschaft mit dem Namen dummy hinzu und mache dann eine Abfrage, wähle aber nur id, post_message und erstellt (Autor würde ich schon wissen, ob ich danach filtere). Auf diese Weise würde es nur 1 gelesen werden, um alle diese Entitäten zu erhalten. Ist das möglich? Warum sollte das nicht jeder tun, um Kosten zu vermeiden?

Antwort

2

Projektionen geben Werte von Indizes statt der Entität selbst zurück, daher gibt es some limitations.

In Ihrem Beispiel müssten Sie einen Index für (post_id, post_message, created) schaffen, aber wenn man wollte Eigenschaften abzurufen wie Text oder Blob Sie die Entität holen, da diese Eigenschaften müssen nicht indiziert werden können.

Wenn Sie Eigenschaften hinzufügen oder Eigenschaften ändern, die Sie projizieren möchten, müssen Sie möglicherweise neue Indizes erstellen. Auch wenn es Sie bei einigen Entity Reads sparen kann, machen Sie auch einige Opfer.

+0

Mit der neuen Preisgestaltung ab dem 1. Juli, obwohl das Erstellen von Indizes frei ist (nur die Speicherung von ihnen wird teuer sein). So wie ich es sehe, ist nur die zusätzlichen Kosten die Speicherung der Indizes (ich brauche keine langen Texte oder Blobs) ?? Es interessiert mich eher zu wissen, ob das, was ich vorschlage, machbar ist? – user2924127

+0

Das ist eigentlich ein wichtiger Punkt: Abhängig von Ihren Daten und Ihrer Anwendung können Sie feststellen, dass ein Großteil Ihrer Einsparungen durch höhere Speicherkosten für zusammengesetzte Indizes ausgeglichen wird. – tx802

Verwandte Themen