我担心这条线在我的 Rails 项目的控制器中的效率
posts_list = Post.where(:title => params[:title])
如果数据库中的“帖子”数量增加,该行执行会变慢吗?有没有可能的优化?
我担心这条线在我的 Rails 项目的控制器中的效率
posts_list = Post.where(:title => params[:title])
如果数据库中的“帖子”数量增加,该行执行会变慢吗?有没有可能的优化?
它只是触发这个查询,
select * from posts where title = params[:title]
您可以索引迁移文件中的标题列
add_index(:posts, :title)
在标题字段上添加索引可以是第一种方法:
class AddIndexTitleToPost < ActiveRecord::Migration
def change
add_index :posts, :title, uniq: false
end
end
您可以在迭代中使用 find_each 来防止数据库增长
Post.where(title: params[:title]).find_each(batch_size: 10) do |post|
...
end
这一切都是为了应用性增强