【发布时间】:2008-11-14 06:32:55
【问题描述】:
我在 wikipedia 上阅读了有关 App Engine 的信息,并遇到了一些 GQL 限制:
不支持加入
一次最多只能从一个表中选择
WHERE 子句中最多可以放 1 列
这些限制有什么好处?
这些限制在其他优先考虑可扩展性的地方是否常见?
【问题讨论】:
我在 wikipedia 上阅读了有关 App Engine 的信息,并遇到了一些 GQL 限制:
不支持加入
一次最多只能从一个表中选择
WHERE 子句中最多可以放 1 列
这些限制有什么好处?
这些限制在其他优先考虑可扩展性的地方是否常见?
【问题讨论】:
GQL 与之通信的数据存储是:
拥有这样一个数据库的一个原因是拥有一个可以跨数百台服务器扩展的高性能数据库。
GQL 不是 SQL,而是类似于 SQL。
以下是一些参考资料:
【讨论】:
我相信答案实际上与数据存储的底层技术有关,而不是对可用数据的任何限制。 Google 并没有在后台使用关系数据库,而是 BigTable,他们刚刚添加了一个很好的 API,它使用类似 SQL 的查询来限制那些习惯使用关系数据库的人的学习曲线。对于那些更习惯使用 ORM 的人来说,他们会像鸭子一样接受它。
【讨论】:
现有答案可以很好地解决高级问题。
另外注意:您提到的第三个限制实际上并不正确。 GQL 查询可以在 WHERE 子句中包含任意数量的列。有一些注意事项,但列数没有明确限制。更多:
http://code.google.com/appengine/docs/python/datastore/queries.html
【讨论】: