上的Active Record迁移部分3.2 Creating a Join Table Rails的指南说,指数不会默认连接表补充说:为什么Rails默认将索引添加到连接表中?
create_join_table也接受模块,你可以使用添加 指数(未通过创建默认情况下)或其他列:
:class CreateJoinTableFooBar < ActiveRecord::Migration def change create_join_table :foos, :bars do |t| # t.index [:foo_id, :bar_id] # t.index [:bar_id, :foo_id] end end end
当我运行的发电机,我确实可以看到,至少有一些指标默认情况下不添加0
Rails在默认情况下不添加这些索引的基本原理是什么?
另外,只是为了澄清,如果我不取消注释这些行,是否会生成以下任何索引:foo_id或:bar_id本身会生成?
我不是一个很大的指数专家,但我的猜测是,拥有这两个指数没有多大意义。根据您的数据,这些数据之间可能会有很大的性能差异,应该由开发人员决定使用哪一个。 – BroiSatse