Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
Daniel Qin
@nevernet
高级会员
第 3225 位会员 / 2012-08-11

5 篇帖子 / 30 条回帖
0 关注者
0 正在关注
0 收藏
未设置 GitHub 信息。
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • 基于地址位置,查询附近的人 ,解决方案及性能分析 [已更新, 详见下面的结论] at 2015年04月09日

    #29 楼 @windstill 用传统坐标试过的。之前就是传统坐标。 也不是组合索引,当然组合和非组合索引都试过。

    mongodb version 2.6.x

    stackoverflow 基本被我翻烂了。:)

    所以我现在估计并不是单纯的索引问题,因为这个 collection 被 insert, update 也很频繁,也可能是其他原因引起 v2.6 下都是库级锁,所以很蛋疼。

  • 基于地址位置,查询附近的人 ,解决方案及性能分析 [已更新, 详见下面的结论] at 2015年04月09日

    #25 楼 @windstill 索引不在 coordinates 上,在 location 字段上。如下:

    {
            "v" : 1,
            "key" : {
                "location" : "2dsphere",
            },
            "name" : "location_2dsphere,
            "ns" : "db.example",
            "2dsphereIndexVersion" : 2
        }
    
  • 基于地址位置,查询附近的人 ,解决方案及性能分析 [已更新, 详见下面的结论] at 2015年04月09日

    我的总数据量200w左右。 nearSphere 一个坐标的总量在42w左右,为啥我查询的时间要 2s(2000ms) 多呢? 下面是具体的数据:

    数据存储的格式如下:

    {
    "postid":NumberLong(97040),
    "accountid":NumberLong(348670),
    "location":{
        "type":"Point",
        "coordinates":[
            112.56531,
            32.425657
        ]
    },
    "type":NumberLong(1),
    "countspreads":NumberLong(6),
    "countavailablespreads":NumberLong(6),
    "timestamp":NumberLong(1428131578)
    }
    

    ** 索引在 location 字段上面 **

    {
            "v" : 1,
            "key" : {
                "location" : "2dsphere"
            },
            "name" : "location_2dsphere",
            "2dsphereIndexVersion" : 2
        }
    

    ** 查询语句 **

    db.example.find({"location":{"$nearSphere":{"$geometry":{"type":"Point","coordinates":[113.547821,22.18648]},"$maxDistance":50000, "$minDistance":0}}}).explain()
    

    结果如下

    {
        "cursor" : "S2NearCursor",
        "isMultiKey" : false,
        "n" : 145255,
        "nscannedObjects" : 1290016,
        "nscanned" : 1290016,
        "nscannedObjectsAllPlans" : 1290016,
        "nscannedAllPlans" : 1290016,
        "scanAndOrder" : false,
        "indexOnly" : false,
        "nYields" : 0,
        "nChunkSkips" : 0,
        "millis" : 4087,
        "indexBounds" : {
    
        },
        "server" : "DB-SH-01:27017",
        "filterSet" : false
    }
    

    注意我的$maxDistance 很大,根据 explain 结果看,扫描了 100w+ 的记录,查询时间预计是 4087ms。 如果缩小$maxDistance 到 500, 结果如下:

    {
        "cursor" : "S2NearCursor",
        "isMultiKey" : false,
        "n" : 21445,
        "nscannedObjects" : 102965,
        "nscanned" : 102965,
        "nscannedObjectsAllPlans" : 102965,
        "nscannedAllPlans" : 102965,
        "scanAndOrder" : false,
        "indexOnly" : false,
        "nYields" : 0,
        "nChunkSkips" : 0,
        "millis" : 634,
        "indexBounds" : {
    
        },
        "server" : "DB-SH-01:27017",
        "filterSet" : false
    }
    

    这里看到扫描的记录数是 10w+,预计时间是 634ms 依然很大。 后面我记录把$maxDistance缩小到0.0001,扫描的记录数也在 8w 左右,而时间徘徊在 600ms 左右。无法再减少。 这个时间是完全无法接受的。

    不知道楼主如何测试出来100w记录能够在30ms左右的。

  • [北京] 酷传招聘 Ruby on Rails 全职实习生 / 初级工程师,当然我们也喜欢高手 at 2012年08月30日

    路过,看美女

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月19日

    这个帖子应该移动到“瞎扯谈”里面,还要麻烦版主了

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月19日

    #41 楼 @karma 说实话,我这个主题问的都很主观化,所以习惯问题真要看个人。 关于你的 1,2,4 几个问题,举个简单例子:每行结束的时候,会情不自禁的敲上一个;(分号) 吗?if 后面会情不自禁的敲上一个{吗?呵呵 当然习惯是一个过程,再多学几天,我就习惯了,呵呵。

    3 - 对于基础语法问题,恐怕要扯到好坏这个问题上,确实有难度,有的人就是喜欢 pascal 语法,但有人就是喜欢 C 系列的语法,或许还真有人喜欢用机器码,呵呵,难讲。

    5 - 这个问题 - google 一直是我的习惯。

    我承认发这个帖子,或者发这个主题的帖子是草率的,确实这个主题会引起很多口水仗。

    6 - 谢谢,也希望 Ruby 能给你带来快乐和财富。

    最后,我之所以说“ruby 语法有点乱” -- 其实是因为一个想法:ruby 基础语法既有 c 的影子,又有 pascal 的影子。

    当然,如果你有时间,你可以去看看 delphi, vb.net, c#/java/php,然后试着用他们写个项目

    over

  • Ruby Programming (第 2 版) 还是 Programming Ruby 中文版 (第 2 版)? at 2012年08月15日

    #4 楼 @Rei 谢谢,非常好

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    感谢各位的倾力回复啊,收益良多,谢谢。

  • 想买一本关于 Ruby 基础的书 at 2012年08月15日

    http://ruby-china.org/topics/4958

  • Ruby Programming (第 2 版) 还是 Programming Ruby 中文版 (第 2 版)? at 2012年08月15日

    镐头书 Ruby1.8 有中文,1.9 有英文版

  • Ruby Programming (第 2 版) 还是 Programming Ruby 中文版 (第 2 版)? at 2012年08月15日

    懂了,原来 Programming Ruby 才是镐头书

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    #19 楼 @zeeler 我就看了这个介绍: http://rubylearning.com/satishtalim/tutorial.html

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    #17 楼 @bhuztez you are right.

    good ruby style generally only uses explicit returns for an early return. Ruby is big on code minimalism/implicit magic. That said, if an explicit return would make things much clearer or easier to read, it won't harm anything.
    
  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    #13 楼 @jjym 呵呵,错误已经修改了

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    想请教下,我贴出的代码,这个网站自动加 [code][/code] 了?

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    #8 楼 @yggg 感慨而已,其实主要想表达的意思是感觉 ruby 的基础语法用的不太统一,就比如有人说 php 函数定义有的是 get_first_name,有时是 getFirstName 一样

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    #6 楼 @hooopo 非也,新手有感而发而已

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    #1 楼 @jjym 来几个例子?

  • 有人觉得 Ruby 的语法乱吗? at 2012年08月15日

    ruby 里面有太多其它语言的影子了,如 js, java, .... ruby 里面有.net linq 的例子?

  • Aptana ruby 语法代码提示问题 at 2012年08月14日

    #9 楼 @huacnlee 汗,我还真没打算记过任何 api

  • ruby 元编程 中文版 有个错误大家注意下 at 2012年08月13日

    晕,算了,还是看英文版

  • Aptana ruby 语法代码提示问题 at 2012年08月13日

    #4 楼 @lgn21st 或许是吧 我考虑考虑 vim 或者 emacs

  • Aptana ruby 语法代码提示问题 at 2012年08月13日

    #6 楼 @heliang7 唉,郁闷啊,新手记不住那么多 methods,提示还是很重要的。

  • Aptana ruby 语法代码提示问题 at 2012年08月12日

    any ideas will be appreciated.

  • 邮件发送失败 at 2012年08月12日

    are you using linux or mac os ? but as i think ,you should review something at there: http://rubygems.org/search?utf8=%E2%9C%93&query=smtp

    try to use some smtp client of ruby.

    good luck

  • 邮件发送失败 at 2012年08月12日

    换个邮件服务器试试

  • 新手使用 Rails 开发网站 at 2012年08月12日

    #7 楼 @tech_blogbin 碰到同样问题啊,招人确实是个问题啊

  • Aptana ruby 语法代码提示问题 at 2012年08月12日

    好吧,这个是个考验

  • 新手使用 Rails 开发网站 at 2012年08月11日

    为啥不直接用 PHP

  • Aptana ruby 语法代码提示问题 at 2012年08月11日

    还有一个问题,比如 输入 p, 代码提示里面居然没有“p”这个 method. 为何?

关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English