ruby-on-rails – 数据库中非唯一索引的目的是什么?

ruby-on-rails – 数据库中非唯一索引的目的是什么?,第1张

概述我一直在搜索,但似乎无法在数据库中找到唯一和非唯一索引概念背后的适当解释. 例如,在Rails中,您可以为给定字段创建唯一且非唯一的索引,如http://railsguides.net/advanced-rails-model-generators/所述 我不明白的是:如果索引的目的是“设置快捷方式”到表中的值位置以便更快地访问它,那么多个值如何共享相同的索引? 比方说,我将电子邮件存储在一个表中 我一直在搜索,但似乎无法在数据库中找到唯一和非唯一索引概念背后的适当解释.

例如,在Rails中,您可以为给定字段创建唯一且非唯一的索引,如http://railsguides.net/advanced-rails-model-generators/所述

我不明白的是:如果索引的目的是“设置快捷方式”到表中的值位置以便更快地访问它,那么多个值如何共享相同的索引?

比方说,我将电子邮件存储在一个表中,我想索引它们的值位置.
如果到目前为止,我做对了,如果我有非唯一索引,那么DB可以将foo @ bar.com索引到位置150,bar @foo.com也索引到位置150.
因此,如果我最终在位置150处说出100个不同的值,那么如果DB仍然必须搜索150处的所有值以找到我需要的确切记录,那么这首先是否会破坏索引的目的?

这有什么意义?

谢谢

解决方法 在示例电子邮件应用程序的数据模型中,向position属性添加非唯一索引是没有意义的,因为每个消息只有一个位置,每个位置只包含一个消息;在这种情况下,索引应该是唯一的.

但请考虑一个可能的“发件人”属性.许多邮件可以来自同一个发件人.如果您的应用程序具有查找来自特定发件人的所有邮件的功能,那么在发件人列上添加非唯一索引以提高该 *** 作的性能是有意义的.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 数据库中非唯一索引的目的是什么?全部内容,希望文章能够帮你解决ruby-on-rails – 数据库中非唯一索引的目的是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1284319.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存