1

我的web应用程序将有〜150个字段,并且在任何字段(至少一个)中更改值时,我应该保存更改的值。 我应该如何使用GAE存储这些值?我应该直接将它们保存在数据存储中吗?我应该暂时使用memcache,然后在数据存储中一次保存所有值吗?或者,应该遵循其他一些方法?什么应该用于在GAE中存储数据?

回答

3

数据存储是您的数据库。 Memcache将存储从数据存储中获取的数据并暂时保存在内存中,以避免太多的调用返回到数据库。您应该首先围绕数据存储区设计应用程序,然后使用memcache来提高性能。

根据您选择的编程语言(java,python,go),有许多工具可帮助您将应用中的对象映射到数据存储并有效地使用memcache。

0

首先,你应该知道你将如何使用你的数据。您打算制作哪些查询?你的实体的大小是多少?

数据存储区与关系数据库区别很大。那是多少属性改变并不重要,因为无法自行更新属性。你只能整体保存实体。我不知道你的用例,但是应该有一个更好的方法来构造你的数据,而不是单个实体有150个属性。你的用例是什么?

另外,实体的属性太多可能导致索引爆炸,或导致数据存储写入速度变慢。

+0

谢谢,有关我的案例的更多细节可以在这里找到 - http://stackoverflow.com/questions/9232438/how-to-protect-gae-server-side-calculation-logic – 2012-02-28 18:46:30

0

我建议你将实体分割成一个根实体和一对连接的实体,每个实体拥有150个属性中的每一个 - 这样,当你更新一个属性时,你只需要保存一个(或者两个,如果更新反映在根实体上)更小的实体到数据存储,而不是一个巨大的实体。

使用memcache来防止读取,而不是存储去往数据存储的数据。 Memcache可以刷新并且数据可以在它达到永久存储之前被销毁。

往前一步,属性的分组可以反映真实一起更新数据 - 比如,如果你经常更新街道邮政编码在一起,这是有道理的单一结构,让他们在一起。 Maxim电话:

相关问题