【问题标题】:Most efficient/cheap way to send/store data on GAE在 GAE 上发送/存储数据的最有效/最便宜的方式
【发布时间】:2012-09-02 21:03:12
【问题描述】:
我想尽量减少 GAE 上的流量/存储成本。
用户填写表格,选中复选框以选择文本行选项,例如“我在夜间醒来两次或更多次”。或“我每晚睡不到 7 小时。”或“我通常难以入睡。”
我想使用数据存储存储用户的选择。我想我可以通过给每个选择一个唯一的标识符来节省存储空间。然后我将只存储(例如)“342、554、106”而不是三行长文本......然后在下次为每个用户加载页面时检索这些数字并将它们翻译回句子。
我的问题是,在客户端或服务器端进行转换会更好吗?
显然,在客户端进行转换意味着将 LESS 数据从客户端发送到服务器进行存储——这很好。但是,这将意味着从服务器向客户端发送更多数据,考虑到促进转换所需的额外的客户端 javascript 行,它们将作为页面源的一部分下载 - 这可能很糟糕。
【问题讨论】:
标签:
python
performance
google-app-engine
google-cloud-datastore
scalability
【解决方案1】:
以下是一些建议:
- 将用户首选项/设置也保存在服务器上,以便您将来可以将他们的首选项同步到多个客户端/设备。
- 还建议将数据本地存储在客户端上,这样就不会每次都调用服务器来获取某些首选项。在离线情况下,在客户端本地提供相关数据非常关键。
就 GAE 上的存储选项而言 - 有多种选择。由于您使用的是 Datastore,我建议您使用它。就每个实体的存储大小和输入/输出带宽而言,您可以进行近似计算,如果您觉得可以通过几个数字或组合数字(在单个 Datastore 实体属性中)而不是多个实体属性,这是可取的,并且会有所帮助。
【解决方案2】:
听起来您已经知道如何最好地存储数据了。
就在服务器端或客户端将其转换为 HTML 而言,这取决于您页面的复杂性。分析它可能会花费更多的时间而不是它的价值,并且如果您的页面发生变化,它可能会发生变化。除非是极端情况,否则很可能是清洗。使用更简单的方法并完成您的项目。如果您使用的是在服务器端处理生成表单的框架,请使用它。如果您有数十万的浏览量并且这会增加大量成本,请重新访问特别是导致您出现问题的页面。
一种极端情况可能是,如果您的表单需要在一个页面上出现很多次,在这种情况下,在 javascript 中使用一次实际表单并多次复制它可能会更容易。