GAE: 新手请教这两种方法的效率谁更高?

2010-12-15 22:16:50 +08:00
 julia
因为GAE中实体ID不连续,我就在类中弄了个计数的属性,每次读取上个实体的计数值+1

我看v2ex的代码是单独弄一个计数器的类,每次去更新它。

请问这两种谁更有效率些?
4125 次点击
所在节点    Google App Engine
4 条回复
darasion
2010-12-15 22:41:12 +08:00
首先,你必须想想:你真的必须要连续的 ID 吗?
如果不是必须的,那就放弃它是效率最高的。
julia
2010-12-15 22:43:13 +08:00
@darasion 需要,之前的帖大家也说默认算了。。。可GAE的ID实在跳的太厉害
keakon
2010-12-15 23:19:04 +08:00
简单来说,没法做到id连续且高效

同时创建2个实体时,你没法保证id不冲突,除非所有实体都在一个实体组

而如果使用实体组,你更改任何一个实体,都会导致其他实体暂时不能被更改

如果id不需要完全连续(允许冲突时跳跃1的话),使用memcache来加锁或许可以搞定

至于你提到的2个方法,v2ex的更有效,因为get比query快,而且不会因为索引未生效而得到错误结果
julia
2010-12-16 08:41:31 +08:00
谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/5895

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX