gpt4 book ai didi

mysql - 索引如何让速度快?

转载 作者:行者123 更新时间:2023-11-29 10:41:28 25 4
gpt4 key购买 nike

我的问题都在标题中。为什么索引确实使查询如此快?!我读过一些关于索引以及如何使用它们的文章。但我仍然不知道当我在列上创建索引时后台会发生什么?

它会对行进行排序吗?好吧?您知道,当我在两列上创建复合索引时,我的一个查询的速度从 4 秒 降低到 0.04 秒

无论如何,我很想了解创建索引时会发生什么?它们对性能有何帮助?

最佳答案

让我们看一个有 50 条记录的表,它没有索引。

您可能想查询第49条记录,当您输入

select * from <myTable> where Id='49'

后台发生的事情是,迭代每个页面或每一行,并检查 id 该行是否为第 49 行,一旦到达第 49 行,就会将该行推送到屏幕上。但这里需要注意的是,每个迭代的行都会先被拉入内存,然后将最终结果推送到屏幕上

如果您在 ID 列上添加了索引怎么办?所发生的情况是创建一个单独的表,用于存储 ID 值及其各自的行地址。因此,现在当您根据 ID 进行查询时,它会快速找到该特定 ID 的行地址并将其拉入内存,并且根据您想要的内容(“*”或某些列),它会在内存中进行过滤并推送到屏幕上。

这可能对你有帮助

https://www.youtube.com/watch?v=rtmeNwn4mEg&t=601s

关于mysql - 索引如何让速度快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45390259/

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