将索引与列的关系看做现实生活中书本的目录与页码的关系,更好的理解什么是索引(可能不是100%准确,好在易理解)。
目录:一本书的目录通常列出书中的章节标题及其对应的页码。读者可以通过目录快速找到他们感兴趣的内容所在的页码。
页码:每一页都有一个唯一的编号,读者可以根据目录中的页码直接翻到相应的页面。
数据库中的索引
索引:索引就像书的目录,它为表中的数据提供了一个快速定位的方式。索引包含了一系列的键值及其对应的数据行位置信息。
数据行:每条数据行就像是书中的一页,索引帮助快速定位到特定的数据行。
假设你有一本书,书中有一个名为“计算机科学”的章节,该章节位于第 50 页。在目录中,你会看到这样的条目:“计算机科学,50”。当你想阅读“计算机科学”这一章时,你可以直接翻到第 50 页,而不需要从第 1 页开始逐页翻阅。
在数据库中,假设你有一个名为 books 的表,其中有一个名为 title 的列。如果你想查找所有标题为 “计算机科学” 的书籍,你可以创建一个基于 title 列的索引。索引会像目录一样列出所有的标题及其对应的行位置。当执行查询时,数据库会使用索引快速定位到包含 “计算机科学” 的行,而不需要扫描整个表。