Frage

Ich werde in Kürze eine Web -App entwerfen, und obwohl ich viel Erfahrung in der SQL -Welt habe, habe ich keine Ahnung, was ich dafür berücksichtigen muss Zukunft.

Alternativ könnte ich die App für GAE von Anfang an entwerfen, und in diesem Fall müssen ich in diesem Fall die Unterschiede berücksichtigen? Mit anderen Worten, was sind die Dos und Donner, Ihre App für GAE zu schreiben, die aus einer vergangenen relationalen Datenbanken stammen?

War es hilfreich?

Lösung

Nur aus meinem Kopf:

  • Es ist wirklich nur ein Schlüsselpreisgeschäft, lassen GQL (Dies ist nur eine Teilmenge von SQL Select)
  • Keine Verknüpfungen - oft müssen Sie denmormieren oder vergessen
  • Mehr oder weniger häufig Zeitüberschreitungen
  • (Sehr) langsamer Zugriff im Vergleich zur lokalen SQL -Basis.
  • Zählen sehr teuer
  • Offset (in Select) auf der Clientseite implementiert - also holen Sie alle Datensätze bis zum Offset ab - Wie Nick Johnson in einem der Kommentare hervorgehoben hat, ist es keine Kundenseite, so dass die SQL -Datenbanken nun, da die Grenze von 1000 verschwunden ist, ähnlich ist.
  • (Kürzlich entfernt) Grenze von 1000 abgerufenen Zeilen
  • Die Auswahlleistung nimmt mit zunehmender Anzahl zurückgekehrter Zeilen drastisch ab
  • Migrationen sind schwer zu tun, da Sie sie mit normalen HTTP -Anfragen durchführen müssen und jede Anfrage nach 30 Sekunden getötet wird. Sie müssen zu Task -Warteschlangen zurückgreifen, die Zeilen in Stapeln verarbeiten
  • Es gibt Pseudo -Fremdschlüsse - als Referenzproperties in der Python -API bezeichnet - aber sie werden in keiner Weise durchgesetzt -, wenn jemand/etwas Zielobjekt löscht, dann haben Sie das, was als baumelnder Zeiger in C ++ bekannt ist
  • Felder, die Sie für Abfragen verwenden Schlüssel (Eine Art Primärschlüssel für jede Zeile/Instanz) lässt Ihre Abfragen schneller laufen
  • Das Erstellen von Indizes auf der Live -Instanz kann viel Zeit in Anspruch nehmen (und Sie können sie nicht verringern), und ohne sie kann Ihre App oft nicht funktionieren. Bier und Geduld sehr empfohlen ..
  • Viele künstliche Grenzen (wie die bereits entfernte maximale Grenze von 1000). EG GQL 'In' Operator ist nur syntaktischer Zucker für mehrere OR-S-S-S und es wird eine Obergrenze von 30 Werten verwendet.

All dies bedeutet, dass Sie wahrscheinlich nicht vermeiden können, inkonsistenten Zustand dem Benutzer auszusetzen, und dass Sie nicht sicher nicht vermeiden können, dass inkonsistenten Status Ihrer Daten migriert ist (z.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top