在 Rails 3.2.13 应用程序中,我使用 query_reviewer gem 来提高我的数据库性能。
生成 SQL 的代码是:
@seo_keywords = SeoKeyword.order("category, keyword")
它生成了以下 SQL 警告:
MSG: No index was used here. In this case, that meant scanning 64 rows.
SQL: SELECT SQL_NO_CACHE `seo_keywords`.* FROM `seo_keywords` ORDER BY category, keyword
所以我生成了以下数据库迁移:
def up
add_index :seo_keywords, :category
add_index :seo_keywords, :keyword
end
迁移将索引添加到表中,如架构所示:
add_index "seo_keywords", ["category"], :name => "index_seo_keywords_on_category"
add_index "seo_keywords", ["keyword"], :name => "index_seo_keywords_on_keyword"
我重新启动了服务器,加载了页面并得到了同样的错误。我想我创建的索引不正确?
谢谢你的帮助。