我真正感兴趣的是MySQL索引是如何工作的,更具体地说,它们如何在不扫描整个表的情况下返回请求的数据?
我知道这是离题的,但如果有人能向我详细解释这一点,我将非常非常感谢.
我真正感兴趣的是MySQL索引是如何工作的,更具体地说,它们如何在不扫描整个表的情况下返回请求的数据?
我知道这是离题的,但如果有人能向我详细解释这一点,我将非常非常感谢.
基本上,一个表上的索引就像一本书中的索引一样工作(这就是名字的来源):
假设你有一本关于数据库的书,你想找到一些关于存储的信息.如果没有索引(假设没有其他帮助,比如目录),你必须一页一页地浏览,直到找到主题(这是full table scan
).
当然,索引的有用程度取决于很多事情——使用上面的比喻,举几个例子: