我将在不久的未来。

另外,我可以从一开始就为GAE设计该应用程序,因此在这种情况下,我需要考虑什么区别?换句话说,为GAE编写应用程序的DOS和不可能是从过去的关系数据库中。

有帮助吗?

解决方案

就在我的头顶上:

  • 这实际上只是一个键 - >价值商店,不要被诸如此类的事物所迷惑 GQL (这只是SQL选择的子集)
  • 没有加入 - 通常您必须贬低或忘记
  • 或多或少频繁的超时
  • (非常)与本地SQL基础相比,速度较慢。
  • 计数非常昂贵
  • 在客户端实现的偏移(在选择中) - 因此,实际上您获取所有记录以偏移 - 正如尼克·约翰逊(Nick Johnson)在其中一条评论中指出的那样,它不是客户端,因此,由于限制的限制已消失,因此类似于SQL数据库。
  • (最近被删除)限制1000行
  • 选择性能随着返回行数的增加而大大降低
  • 迁移很难做到,因为您必须使用普通的HTTP请求进行迁移,并且在30秒后每次请求都会杀死。您必须诉诸于批量处理行的任务队列
  • 有伪外键 - python api中称为参考权 - 但它们不会以任何方式强制执行 - 如果某人/某物删除目标对象,那么您就拥有C ++中的悬挂指针
  • 您用于查询的字段必须索引,但仍在使用 钥匙 (每行/实例的主键)使您的查询运行速度更快
  • 实例实例上的构建索引可能需要大量时间(您将不能减少它),没有它们,您的应用程序通常无法正常工作。强烈推荐啤酒和耐心。
  • 许多人造限制(例如已经删除的最大限制为1000)。例如,gql'in Operator只是用于多个或s的句法糖,并且使用30个值的上限。

所有这些意味着您可能无法避免将不一致的状态暴露给用户,并且几乎可以肯定您无法避免具有不一致的数据状态(例如,一半行迁移,一半又不一半,在手动加入数据更改等过程中)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top