Почему Google App Engine ограничивает запросы GQL?

Я читал о App Engine в Википедии и наткнулся на некоторые ограничения GQL:

  • СОЕДИНЕНИЕ не поддерживается

  • может ВЫБРАТЬ не более чем из одной таблицы за раз

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

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

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


person MrDatabase    schedule 14.11.2008    source источник


Ответы (3)


Хранилище данных, с которым общается GQL:

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

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

GQL — это не SQL, это похоже на SQL.

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

person Dave Jensen    schedule 14.11.2008

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

person ChrisInCambo    schedule 14.11.2008

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

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

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

person ryan    schedule 27.01.2011