gpt4 book ai didi

ruby-on-rails - 在外键上添加索引如何工作?

转载 作者:搜寻专家 更新时间:2023-10-30 19:49:19 25 4
gpt4 key购买 nike

我刚刚发现,为了防止在连接期间进行全表扫描,我需要在我的 Rails 应用程序中为我的外键添加索引。但我不确定向外键添加索引到底意味着什么,它是如何工作的,以及它如何提高性能。

最佳答案

我认为维基百科对索引的含义和作用进行了很好的总结。看这里:http://en.wikipedia.org/wiki/Index_%28database%29

索引可以/确实会增加数据库的大小。他们有效地缓存了您的数据订单。当您针对外键关系建立索引时,您将缓存表的默认排序,这可以减少需要在表中搜索的项目的大小或可以加快连接速度。

考虑这个人为的例子:

我有一个名为 employee 的表:

员工编号 |员工代码 |员工姓名

1 | 0003 |理查德
2 | 0002 |鲍勃
3 | 0008 |提姆

我想加入员工代码的排序列表:

00030008

这意味着没有索引,您的搜索效率为 O(n2)。通过员工代码排序的表,您可以看到二叉搜索树给出的搜索效率:http://en.wikipedia.org/wiki/Binary_search_algorithm .实际上,它可以通过猜测它的位置并发现它越来越近来找到 0003,而不是搜索每一行。

我并不是说您的数据库正在使用任何特定算法,但有些算法需要通过键对数据进行排序,以便进行更高效的搜索。

当您不再需要索引时,您可能想考虑删除它们,因为它会影响数据库大小。

关于ruby-on-rails - 在外键上添加索引如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8514042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com