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

GAE: v2ex这样是不是比较慢?

  •  
  •   julia · 2010-12-17 15:28:40 +08:00 · 4155 次点击
    这是一个创建于 4889 天前的主题,其中的信息可能已经有所发展或是发生改变。
    上次问库操作方法快慢问题:http://www.v2ex.com/t/5727

    但我发现v2ex的大都是 db.GqlQuery ,比如这个取头像的

    q = db.GqlQuery("SELECT * FROM " + K + " WHERE name = :1", str(name))


    和这个 x.all().filter('name =',k) 谁快?或者有什么高效的方法?

    @Livid 说db.GqlQuery最慢,那他干嘛还要用?求解答!
    9 条回复    1970-01-01 08:00:00 +08:00
    fsw90628
        1
    fsw90628  
       2010-12-17 15:42:34 +08:00
    all()之后再filter看上去肯定不快啊
    jeeson
        2
    jeeson  
       2010-12-17 15:43:52 +08:00
    getByObjectId 最快,相当于哈希查询,不过先得获得id
    darasion
        3
    darasion  
       2010-12-17 17:32:52 +08:00
    看起来是不行的,一定实测。
    ayanamist
        4
    ayanamist  
       2010-12-18 23:45:14 +08:00
    @fsw90628 all()之后是个虚拟对象,必须要用fetch或者迭代才会真正的去取数据,类似ActiveRecord的东西。
    我也想不明白为啥@Livid 用这么效率又不高又不Pythonic的方式……
    c
        5
    c  
       2010-12-19 00:03:05 +08:00
    代码是不断完善的嘛,有那么一天Livid会重构的 :)
    mamimoluo
        6
    mamimoluo  
       2010-12-20 14:21:03 +08:00
    @fsw90628
    不是你想想的那样的,呵呵。你以为是先全部all出来,再做筛选啊!
    jckwei
        7
    jckwei  
       2010-12-20 15:14:23 +08:00
    v2ex目前可能运行成本比较高。
    fsw90628
        8
    fsw90628  
       2010-12-20 17:32:53 +08:00
    @ayanamist @mamimoluo 好吧,我承认是刚起床头脑昏昏回的贴。
    举个例子
    query = Song.all()
    query.filter('title =', 'Imagine')
    filter是对query的一次修改,在query.fetch()执行之前什么都没有发生的。
    我猜想用Gql是为了代码的统一性吧,有一些高级feature?纯属瞎猜。
    Livid
        9
    Livid  
    MOD
       2010-12-21 05:17:15 +08:00
    db.GqlQuery 这一句或许确实不够快,但是,如果具体到 V2EX 的这个 handler,那么一切是有缓存的……

    只要 handler 在 99% 的时间里够快就足够了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1483 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 17:05 · PVG 01:05 · LAX 10:05 · JFK 13:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.