V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
DAOCLOUD
推荐学习书目
Python Cookbook
Using Google App Engine
推荐下载
Latest Google App Engine SDK
其他兼容技术
AppScale
julia
V2EX  ›  Google App Engine

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

  •  
  •   julia · 2010-12-15 22:16:50 +08:00 · 4128 次点击
    这是一个创建于 5095 天前的主题,其中的信息可能已经有所发展或是发生改变。
    因为GAE中实体ID不连续,我就在类中弄了个计数的属性,每次读取上个实体的计数值+1

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

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

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

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

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

    至于你提到的2个方法,v2ex的更有效,因为get比query快,而且不会因为索引未生效而得到错误结果
    julia
        4
    julia  
    OP
       2010-12-16 08:41:31 +08:00
    谢谢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3102 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:37 · PVG 21:37 · LAX 05:37 · JFK 08:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.