是这个样子。局部扫表
这个词还是第一次听说...... 但 game_id 上有没有索引和是否扫描关系不大,过滤的只是 timestamp,只要有 timestamp 的左前缀索引都是会走索引。
你这两个主要差异在排序上:
PS1. 楼主的查询用了索引..
PS2. 楼主用的是 MyIsam
PS3. 针对楼主的这句查询,加一个 Game 表(估计已经有了),设置 counter cache,select id, basicdata_count from games
一句话搞定。
pregroup
#5 楼 @yedingding 谢谢!
JSONAPI 这个项目关注了很久,看了一些规则,有种茅厕顿开的感觉...靠谱。
谢谢分享。
求邀请码..
#13 楼 @linjunzhugg 列表要查,但是 max 这种查询很快(在索引正确的情况下)。
缓存本质倒不是查不查,而是把一个长查询转化成短查询。
#11 楼 @linjunzhugg 所以要你设计合理的 cache key,比如你已经有了一个 product 对象,product.cache_key 是不需要查的。
#8 楼 @linjunzhugg 第一个,计算 cache_key 的代价很小。第二种方案过于复杂。
简单的说,关键在于如何生成 cache key。
一般来说,cache_key = f(m1, m2, m3, ..),每个实例 mx 的变化,必须反应到 cache_key 的变化,至于是 model 关联自动 touch 还是手动 touch 由你应用自己决定。
不是查询效率问题,是单个目录有文件个数限制。所以才会有 ID Partition 这东西。
image onload 之后发一个请求..
pry 里可以这样:
[9] pry(main)> $ ActiveRecord::Base
From: /Users/hooopo/.gem/ruby/2.1.2/gems/activerecord-3.2.18/lib/active_record/base.rb @ line 333:
Class name: ActiveRecord::Base
Number of monkeypatches: 20. Use the `-a` option to display all available monkeypatches
Number of lines: 384
class Base
##
# :singleton-method:
# Accepts a logger conforming to the interface of Log4r or the default Ruby 1.8+ Logger class,
# which is then passed on to any new database connections made and which can be retrieved on both
# a class and instance level by calling +logger+.
cattr_accessor :logger, :instance_writer => false
text area 可以换行
不是 Ruby 版的 Meteor 吗