5

我在 wikipedia 上阅读App Engine并遇到了一些 GQL 限制:

  • 不支持加入

  • 一次最多可以从一个表中选择

  • 最多可以在 WHERE 子句中放置 1 列

这些限制有什么好处?

这些限制在其他优先考虑可扩展性的地方是否常见?

4

3 回答 3

19

GQL 与之对话的数据存储是:

  • 不是像 MySQL 或 PostgreSQL 这样的关系数据库
  • 是一个名为 BigTable 的面向列的 DBMS

拥有这样一个数据库的一个原因是拥有一个可以跨数百台服务器扩展的高性能数据库。

GQL 不是 SQL,它是类似 SQL 的。

以下是一些参考资料:

于 2008-11-14T06:37:10.350 回答
4

我相信答案实际上与数据存储的底层技术有关,而不是对可用内容的任何限制。Google 并没有在后台使用关系数据库,而是使用BigTable,他们刚刚添加了一个很好的 API,它使用类似 SQL 的查询来限制那些习惯使用关系数据库的人的学习曲线。对于那些更习惯使用 ORM 的人来说,他们会像鸭子一样接受它。

于 2008-11-14T06:41:05.193 回答
2

现有答案很好地解决了高级问题。

另外一点:您提到的第三个限制实际上并不正确。GQL 查询可以在 WHERE 子句中包含任意数量的列。有一些注意事项,但列数没有明确限制。更多的:

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

于 2011-01-27T23:17:55.590 回答