Sql 如何在活动记录迁移中向字段添加索引以加快查询速度?

Sql 如何在活动记录迁移中向字段添加索引以加快查询速度?,sql,ruby,activerecord,indexing,query-optimization,Sql,Ruby,Activerecord,Indexing,Query Optimization,我使用以下迁移创建字典单词表: class CreateTerms < ActiveRecord::Migration def change create_table :terms do |t| t.string :word, index: true t.timestamps end end end 当我通过id查找某个内容时,速度要快得多: Term Load (0.8ms) SELECT "terms".* FROM "terms"

我使用以下迁移创建字典单词表:

class CreateTerms < ActiveRecord::Migration
  def change
    create_table :terms do |t|
      t.string :word, index: true
      t.timestamps
    end
  end
end
当我通过id查找某个内容时,速度要快得多:

Term Load (0.8ms)  SELECT "terms".* FROM "terms" WHERE "terms"."id" = $1 LIMIT 1  [["id", 143556]]
我添加索引是否正确


如何将第一个查询降低到1毫秒的范围,如第二个查询

您可以尝试的一件事是在主键上创建一个索引,并包括要进行搜索的列。这将使查询数据库的速度更快、速度更快
更简单。

首先查看查询的解释输出。而且,通常情况下,主键上的精确查找要比副键上的范围查找快。据我所知,like%query可能返回10000行
Term Load (0.8ms)  SELECT "terms".* FROM "terms" WHERE "terms"."id" = $1 LIMIT 1  [["id", 143556]]