14

我正在构建一个使用 gae 的企业管理系统应用程序。我已经使用 gae 和数据存储构建了多个应用程序,但从来没有一个需要大量用户输入事务以及需要管理和管理报告的应用程序。我最大的恐惧是,当我需要创建交叉表和其他详细报告(或商业智能报告和数据操作)时,我将面临 gae 的数据存储查询和数据拉取限制的大量问题。这真的只是架构偏好还是这里有数量问题?

过去,我曾针对 Oracle/MySql/MSSql 使用 C++/c#/Java 构建系统(在复杂或经常访问的数据库结果中添加了一个缓存层以提高性能)。

我一直在读到,我们要抛弃旧的关系数据心态,转向空中大 McHashTable 的新世界……但新的并不总是更好……任何关于上述内容的见解或经验都会有所帮助。

4

2 回答 2

22

Cloud SQL 常见问题解答

我应该使用 Google Cloud SQL 还是 App Engine Datastore?

这取决于应用程序的要求。Datastore 提供高度可扩展的 NoSQL 键值 > 存储,但不支持 SQL 数据库提供的复杂查询。Cloud SQL 支持复杂的查询和 ACID 事务,但这意味着数据库充当“固定管道”并且性能的可扩展性较差。许多应用程序使用这两种类型的存储。

如果您需要对带有分布式密钥的 db 实体进行大量写入(每秒钟约 XXX 次),那么这就是 Google App Engine 数据存储区真正发挥作用的地方。

如果您需要支持复杂且随机的用户制作的查询,那么 Google Cloud SQL 会更方便。

于 2012-06-06T15:05:44.573 回答
6

在 GAE 数据存储中更让我害怕的是索引数限制。例如,如果您需要按某个字段搜索或排序 - 您需要 +1 索引。总共可以有 200 个索引。如果您有具有 10 个可搜索字段的实体,并且您可以按任何字段排序 - 将有大约 100 个组合。所以你需要 100 个索引。我为 gae 开发了几个小项目——这就是成功案例。但是当大人物来临时 - 这不是为了 gae。

关于缓存——你可以用 gae 来做,但他们的分布式缓存工作很慢。我更喜欢使用 RESTfull API 创建永久后端的私有单个实例,该 API 将缓存值保存在内存中。前端实例调用此 API 来获取/设置值。

也许用 gae 构建复杂的系统是可能的,但这将是一组小型应用程序/服务。

于 2012-06-06T06:09:20.783 回答