2008-11-14 15 views
5

que estaba leyendo acerca App Engine en la wikipedia y encontré algunas restricciones GQL:¿Por qué Google App Engine restringe las consultas GQL?

  • JOIN no es compatible

  • puede seleccionar de a lo sumo una tabla a la vez

  • puede poner en la mayoría de 1 columna en la cláusula WHERE

¿Cuáles son las ventajas de la ¿restricciones?

¿Estas restricciones son comunes en otros lugares donde la escalabilidad es una prioridad?

Respuesta

19

El almacén de datos que las conversaciones GQL a es:

    no
  • una base de datos relacional como MySQL o PostgreSQL
  • es un DBMS en columnas llamadas BigTable

Una de las razones para tener una base de datos como esto es para tener una base de datos de muy alto rendimiento que puede escalar a través de cientos de servidores.

GQL no es SQL, es similar a SQL.

Estas son algunas referencias:

4

Creo que la respuesta es en realidad que ver con la tecnología subyacente del almacén de datos en lugar de cualquier tipo de descanso riction en lo que está disponible. Google no está utilizando una base de datos relacional bajo el capó, sino que en su lugar BigTable, acaban de agregar una buena API que utiliza consultas tipo SQL para limitar la curva de aprendizaje para aquellos que están acostumbrados a usar una base de datos relacional. Para aquellos que están más acostumbrados a usar ORM, lo tomarán como un pato al agua.

2

las respuestas existentes hacen un buen trabajo con la pregunta de alto nivel.

una nota adicional: la tercera restricción que mencionas no es verdadera. Las consultas GQL pueden incluir tantas columnas en la cláusula WHERE como desee. hay algunas advertencias, pero el número de columnas no está explícitamente limitado. más:

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