• 数据库:postgresql xxx 表数据量:200 多万

    xxx.find_by_sql(["select * from xxxs where created_at > ? and created_at < ?", today, today+1.day])
    

    ActiveRecord::Base.connection.execute("select count(*) from xxxs where ST_Contains('LINESTRING (0 #{today.to_i}, 0 #{(today+1.day).to_i})'::geometry, column_range::geometry)") #postgis 判断点是否在线上
    

    快了 3 倍多,另外,find_by_sql 比

    ActiveRecord::Base.connection.execute("SELECT count(*) from xxxs where tsrange('#{today.strftime("%Y-%m-%d %H:%M:%S")}', '#{(today+1.day).strftime("%Y-%m-%d %H:%M:%S")}') @> created_at::timestamp") #postgresql range types
    

    平均快了 50 多毫秒, 是不是哪里出错呢,麻烦解答,谢谢!

  • @ailen 看来大神是要露两手,很期待,给个赞

  • @ailen 谢谢提醒,如果能有像 seeds 文件,一运行就产生多个表,多个迁移文件,多个 Model,倒省了很多事

  • @ailen 谢谢您让我举一反三,因为我问的是数据表,不是数据记录

  • @Rei 谢谢,看来我被僵尸学误导了,它里面说是 hash。

  • 你好,我克隆了项目 shopqi 遇到了问题: #11084 INFO -- : SIGWINCH ignored because we're not daemonized,如何解决?谢谢