views:

1095

answers:

2

I was reading about App Engine on wikipedia and came across some GQL restrictions:

  • JOIN is not supported

  • can SELECT from at most one table at a time

  • can put at most 1 column in the WHERE clause

What are the advantages of these restrictions?

Are these restrictions common in other places where scalability is a priority?

+13  A: 

The datastore that GQL talks to is:

  • not a relational database like MySQL or PostgreSQL
  • is a Column-oriented DBMS called BigTable

One reason to have a database like this is to have a very high performance database that you can scale across hundreds of servers.

GQL is not SQL it is SQL-like.

Here are some references:

djensen47
+3  A: 

I believe the answer is in fact to do with the underlying technology of the datastore rather than any kind of restriction on what is available. Google aren't using a relational database under the hood, but instead BigTable, they have just added a nice API which uses SQL like queries to limit the learning curve for those who are used to using a relational database. For those who are more used to using ORM's will take to it like a duck to water.

ChrisInCambo