【发布时间】:2014-10-20 11:16:23
【问题描述】:
我四处搜索,但似乎找不到数据库中唯一和非唯一索引概念背后的适当解释。
例如,在 Rails 中,您可以为给定字段创建唯一和非唯一索引,如 http://railsguides.net/advanced-rails-model-generators/ 中所述
我不明白的是:如果索引的目的是“设置快捷方式”到表中的值位置以便更快地访问它,那么多个值如何共享同一个索引?
例如,我将电子邮件存储在表格中,并且我想索引它们的值位置。 如果到目前为止我做对了,如果我有非唯一索引,那么数据库可以在位置 150 索引 foo@bar.com,并且在位置 150 索引 bar@foo.com。 因此,如果我最终在位置 150 有 100 个不同的值,如果数据库仍然必须搜索 150 处的所有值以找到我需要的确切记录,这是否会破坏首先建立索引的目的?
这有什么意义??
谢谢
【问题讨论】:
-
是的,实际上我发现了那篇文章,但是对于基本问题,它是以一种不必要的复杂方式编写的,我问我无法通过它:“删除/禁用由如果您忘记了 KEEP INDEX 子句,自动创建的唯一索引会导致索引被删除”。 ...
标签: ruby-on-rails database unique-index