我正在通过代码获取记录,就像这些
一样@community = Community.find_by_community_name(params[:community_name])
@user = User.find_by_username(params[:username])
我想加快加载速度,所以我正在考虑为它们添加索引。
如果我rake db:migrate
,它是否也重新索引到现有记录?
或者只是从现在开始创建的记录?
通过像这样添加索引来提高加载速度吗?
class AddIndexToCommunity < ActiveRecord::Migration
def self.up
add_index :communities, [:community_name, :title, :body], :name=>:communities_idx
end
def self.down
remove_index :communities, [:community_name, :title, :body], :name=>:communities_idx
end
end
class AddIndexToUser < ActiveRecord::Migration
def self.up
add_index :users, [:username, :nickname, :body], :name=>:users_idx
end
def self.down
remove_index :users, [:username, :nickname, :body], :name=>:users_idx
end
end
答案 0 :(得分:3)
rake db:migrate
将执行数据库迁移并立即应用indeces。您应该仅对您在搜索中使用的列应用indeces。请记住,indeces会在insert
和update
操作中增加时间惩罚。如果您使用names
加载记录,请仅将{<1}}
names