2008-11-14 8 views
5

ich über App Engine auf Wikipedia zu lesen und über einige GQL Einschränkungen kam:Warum schränkt Google App Engine GQL-Abfragen ein?

  • JOIN nicht

  • unterstützt wird
  • kann

  • zu einer Zeit von höchstens einer Tabelle auswählen können setzen die meisten 1 Spalte in der WHERE-Klausel

Was sind die Vorteile der se Einschränkungen?

Sind diese Einschränkungen an anderen Orten üblich, an denen Skalierbarkeit Priorität hat?

Antwort

19

Der Datenspeicher, die GQL Gespräche ist:

  • nicht eine relationale Datenbank wie MySQL oder PostgreSQL
  • ist ein Spaltenorientierte Datenbank namens BigTable

Ein Grund, eine Datenbank zu haben, wie Dies ist eine sehr leistungsfähige Datenbank, die Sie auf Hunderte von Servern skalieren können.

GQL ist nicht SQL ist es SQL-like.

Hier sind einige Referenzen:

4

Ich glaube, die Antwort ist in der Tat mit der zugrunde liegenden Technologie des Datenspeichers zu tun eher als irgendeine Art von Ruhe Riktion auf was verfügbar ist. Google verwendet keine relationale Datenbank unter der Haube, sondern BigTable, sie haben gerade eine nette API hinzugefügt, die SQL-ähnliche Abfragen verwendet, um die Lernkurve für diejenigen zu begrenzen, die gewohnt sind, eine relationale Datenbank zu verwenden. Für diejenigen, die mehr daran gewöhnt sind, ORMs zu benutzen, wird es wie eine Ente zu Wasser gehen.

2

die vorhandenen Antworten machen einen guten Job mit der High-Level-Frage.

eine zusätzliche Anmerkung: die dritte Einschränkung, die Sie erwähnen, stimmt nicht wirklich. GQL-Abfragen können so viele Spalten in der WHERE-Klausel enthalten, wie Sie möchten. Es gibt einige Vorbehalte, aber die Anzahl der Spalten ist nicht explizit begrenzt. mehr:

http://code.google.com/appengine/docs/python/datastore/queries.html