【问题标题】:add_index not working in Rails 3add_index 在 Rails 3 中不起作用
【发布时间】:2012-04-23 13:48:54
【问题描述】:

我在 Rails 3.2.3 应用程序中,我正在为我的数据库迁移中的外键添加索引。但是,在运行迁移后,键似乎没有被索引。我已经直接通过 mysql 控制台进行了测试。这就是我所做的,更好的描述:

我有一个与Owner 模型相关的Car 模型,例如:

class Car
  belongs_to :owner
end

class Owner
  has_many :car
end

由于这些是现有的数据库表,我创建了另一个迁移来添加索引,我放置的位置:

add_index :cars, :owner_id, name: "owner_index"

然后我运行了迁移,根据 Rails,一切正常。但是当我登录到我的 mysql 并运行 EXPLAIN 查询时,我在 key 列中看不到 owner_index

mysql> EXPLAIN SELECT * FROM cars WHERE owner_id = 41;
+-------------+------+---------------+---------+-------+---------+-------------+
| select_type | type | key           | key_len | ref   | rows    | Extra       |
+-------------+------+---------------+---------+-------+---------+-------------+
| SIMPLE      | ref  | NULL          | 5       | const |  108    | Using where | 
+-------------+------+---------------+---------+-------+---------+-------------+
1 row in set (0.00 sec)

理论上(根据this post),上一个查询中的键列应该返回owner_index而不是NULL

我做错了什么吗?我错过了什么?

【问题讨论】:

    标签: mysql ruby-on-rails database rails-migrations database-indexes


    【解决方案1】:

    哦,对不起,这只是我的注意力不足。只要您将name 参数传递给add_index 方法,我上面描述的步骤就可以正常工作。

    【讨论】:

      猜你喜欢
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 2011-04-15
      • 1970-01-01
      相关资源
      最近更新 更多