gpt4 book ai didi

ruby-on-rails - 如何为现有属性添加索引和重新索引?

转载 作者:行者123 更新时间:2023-12-02 00:11:56 25 4
gpt4 key购买 nike

我正在通过这些代码获取记录

@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

最佳答案

rake db:migrate 将执行数据库迁移并立即应用索引。您应该仅将索引应用于您在搜索中使用的列。请记住,索引会增加 insertupdate 操作的时间损失。如果您通过它们的 names 加载记录,请仅向 names 添加索引:

class AddIndexToCommunity < ActiveRecord::Migration
def self.up
add_index :communities, :community_name
end

def self.down
remove_index :communities, :community_name
end
end



class AddIndexToUser < ActiveRecord::Migration
def self.up
add_index :users, :username
end

def self.down
remove_index :users, :username
end
end

关于ruby-on-rails - 如何为现有属性添加索引和重新索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14709698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com