一、什么是数据库索引
数据库索引,类似于图书馆中的分类查询卡片,用于快速的对数据库进行查询。索引原理,简单来说,就是针对数据库中某个字段的数据,进行排序,存储在另一个专门的索引数据表中。然后在针对该字段的查询时,使用二分法快速从索引数据表中定位到相应记录的数据ID,再根据这个数据ID,从原始表中返回需要查询的记录信息。
举个例子,我们把数据库里的数据,想象成是一个图书馆里的所有的书,假设,我们现在有这些书:
注意,这些书的排列顺序,是按入库时间来的,这个也是通常数据的排列顺序,即先来的排在前面,后来的排在后面。在数据库里,数据的默认顺序,也是按时间从前向后排。
接下来,假设有一个同学来找我们要“澳洲龙虾养殖大法”这本书,在没有其他信息的情况下,要在整个图书馆里找一本书,只能是一本一本的去找。如果恰好这本书排在后面,那就要找遍整个图书馆。为了要让我们找书的速度加快,我们可以建立一个索引表,比如,按书名的首字母拼音进行排序:
这个时候,我们要找“澳洲龙虾养殖大法”,就可以像字典一样在这个书名索引表里很快的找到它的位置,并直接去相应的位置拿到书,而不需要一本一本的去找了。
有时候,用户可能除了要找某本具体书名的书,还可能要按其他的方法来查找。比如,按作者。假设,某个同学想要借走所有“张三”这个作者的书。那这个时候,上面按书名的索引表就不能满足需求了,要所有“张三”的书,还是要去图书馆里一本一本的找,即“遍历”。因此,我们