我们希望通过我们的应用收集使用情况统计信息。 因此,我们希望在服务器端的某个地方跟踪用户操作。
就性能而言,哪个选项更合适:
- 在 App Engine 请求日志中跟踪用户操作。即为每个用户操作写入一个日志条目。
- 跟踪数据存储区表中的用户操作。为每个用户操作编写一个条目。
我猜请求日志写入比数据存储写入快得多。它是否正确? 您有哪些经验和建议?
谢谢: 亨宁
最佳答案
我可以确认(仅通过我自己的经验观察:我没有在官方文档中看到这个问题)写入日志条目比写入存储条目更快。考虑一下,这是有道理的:日志条目总是附加的,没有索引,没有特定的事务问题(超出每个日志条目写入的原子性)等等;由于受到如此严格的限制,因此可以对它们进行更加优化是有道理的。
但是,我曾经(一年多前的预测试阶段非常早的时候)观察到一个情况,我认为应该有一个我写过的日志条目,但只是找不到它;我无法重现这一观察结果,这可能是我的代码中的一个小故障,或者是 GAE 中一个已修复的错误,但这让我对数据完整性产生了一点疑问——如何保证日志的完整性?除非我在文档中明确看到相关内容,否则我不会觉得我可以指望日志具有 100% 的完整性——如果不小心丢失百万分之一的记录将是一场绝对的悲剧,也许会选择商店的更高保证值得性能影响。
关于性能:数据存储写入与请求日志写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/993200/