作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过这些代码获取记录
@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
将执行数据库迁移并立即应用索引。您应该仅将索引应用于您在搜索中使用的列。请记住,索引会增加 insert
和 update
操作的时间损失。如果您通过它们的 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/
我是一名优秀的程序员,十分优秀!