2008-11-14 2 views
5

Я читал о App Engine на википедии и наткнулся на некоторые ограничения GQL:Почему Google App Engine ограничивает запросы GQL?

  • JOIN не поддерживается

  • может выбрать один из не более одной таблицы в то время

  • можно поставить в больше 1 колонки в предложении WHERE

В чем преимущества se ограничений?

Являются ли эти ограничения распространенными в других местах, где масштабируемость является приоритетом?

ответ

19

Датастор что GQL разговаривает является:

  • не реляционная база данных, как MySQL или PostgreSQL
  • является Column-ориентированной СУБД называется BigTable

Одна из причин, чтобы иметь базу данных, как это будет иметь очень высокую производительность базы данных, которые можно масштабировать на сотни серверов.

GQL не является SQL, подобным SQL.

Вот некоторые ссылки:

4

Я считаю, что ответ в том, чтобы сделать с основной технологией датастора а не любой вид отдыха о том, что доступно. Google не использует реляционную базу данных под капотом, но вместо этого BigTable они просто добавили хороший API, который использует SQL-запросы для ограничения кривой обучения для тех, кто привык использовать реляционную базу данных. Для тех, кто больше привык использовать ORM, он будет восприниматься как утка для воды.

2

Существующие ответы хорошо справляются с вопросом высокого уровня.

еще одно примечание: третье ограничение, о котором вы говорите, на самом деле не так. Запросы GQL могут включать как можно больше столбцов в предложение WHERE. есть несколько предостережений, но количество столбцов явно не ограничено. больше:

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

Смежные вопросы