例如,在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 – 数据库中非唯一索引的目的是什么?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)