Почему Google App Engine ограничивает запросы GQL? - PullRequest
5 голосов
/ 14 ноября 2008

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

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

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

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

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

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

Ответы [ 3 ]

19 голосов
/ 14 ноября 2008

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

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

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

GQL - это не SQL, а SQL-подобный.

Вот несколько ссылок:

4 голосов
/ 14 ноября 2008

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

2 голосов
/ 28 января 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...