对于数据库查询索引和查字典索引的理解

之前面试问过我对于数据库索引的理解,这个问题不是具体的问题太宽泛,面试官也没进行引导,我不知道怎么回答,下面是结合查字典进行理解。

查字典

拿查字典举例,知道一个字怎么写但是不知道具体的意思以及发音,步骤如下

通过这个字包含的部首去字典里的部首目录匹配对应的部首

通过部首查询后面的检字表

这里包含部首的字,按照笔画数量来匹配对应的字

对于数据库查询索引和查字典索引的理解_第1张图片

找到该字的具体页码查看具体的发音和意思

数据库查询

对应数据库sql查询来讲,先给要查询的数据表的对应查询字段建立非聚簇索引,如果多个字段可能需要建立联合索引

组织查询条件


确定where中的查询条件

非聚簇索引中匹配查询条件


查询条件经过数据库的解析,到对应的的非聚簇索引(通过b+树组织索引数据)中进行条件匹配,匹配的数据最终到叶子节点

聚簇索引中匹配最终的数据


最终通过叶子节点查询聚簇索引(通过b树组织索引数据)中的数据。

字典索引与数据库索引的对应关系

其中,部首对应sql查询条件,检字表对应非聚簇索引,页码对应聚簇索引。字典规定的页码排序是按照英文字母顺序,聚簇索引是按照主键的ascii顺序来进行。

如果知道要查的字的读音,可以顺着发音翻到对应的页码找到对应的字。对于数据库主键查询而言,通过主键可以直接通过聚簇索引匹配到唯一的数据,无需通过非聚簇索引进行条件匹配。

你可能感兴趣的:(数据库,索引,数据库)