使用和不使用 :index 的 rails 迁移差异

difference in rails migration with and without :index

给定以下两行

rails g migration add_user_id_to_posts user_id:integer:index

rails g migration add_user_id_to_posts user_id:integer

有什么区别?我似乎无法理解 :index 的概念。

差异与您的程序在逻辑上的工作方式无关。

它将影响您的数据库索引和查询数据的方式。

具体来说,:index 变体将告诉数据库向 postsuser_id 列添加索引。如果数据库正在执行需要查找 user_id 的帖子的查询,那么此搜索将更有效。如果您从不查找 user_id 的帖子,那么您就是在浪费资源。

index 选项在字段 user_id 上创建索引,这样当您通过 user_id 检索记录时,搜索速度会明显加快。

对于索引 - 它们是什么以及它们如何工作 - http://en.wikipedia.org/wiki/Database_index

只有当你有更多的 READ 查询而不是更多的 WRITE 查询时,才应该创建一个思考索引,因为索引在内存方面是昂贵的。