Ruby on rails Micheal Hartl Rails教程-第11章-清单11.1

Ruby on rails Micheal Hartl Rails教程-第11章-清单11.1,ruby-on-rails,Ruby On Rails,我使用的是MacOSX版本10.8和Rails 3.2.14 以下是链接: 向下滚动到清单11.1 问题:向关系表中添加索引有什么意义 关系表有两列follower\u id(输入)和follower\u id(输出)。听起来这就是连接用户(x)和用户(y)所需要的全部,为什么需要索引呢。它是一个额外的列/字段吗?如果没有,是什么。它有什么作用?为什么有必要使用它 谢谢除非向列添加索引,否则数据库无法直接搜索该列。相反,它必须遍历每一行,然后查看该列的值。如果我们讨论的是excel工作表,而您

我使用的是MacOSX版本10.8和Rails 3.2.14

以下是链接:

向下滚动到清单11.1

问题:向关系表中添加索引有什么意义

关系表有两列follower\u id(输入)和follower\u id(输出)。听起来这就是连接用户(x)和用户(y)所需要的全部,为什么需要索引呢。它是一个额外的列/字段吗?如果没有,是什么。它有什么作用?为什么有必要使用它


谢谢

除非向列添加索引,否则数据库无法直接搜索该列。相反,它必须遍历每一行,然后查看该列的值。如果我们讨论的是excel工作表,而您希望快速查看“M”列中的所有值,您可以将眼睛或手指放在该列上并向下滚动。相反,假设您必须从列“A”开始,然后向右滚动以读取列“M”。冲洗并重复1000次,您将在查询中添加大量if时间

两个字段上的复合索引一起防止用户跟踪同一个人两次。虽然您也应该在代码中防止这种情况,但在数据库中复制唯一性验证并没有什么坏处,因为从历史上讲,数据库比应用程序寿命长