索引原理面试
发布网友
发布时间:2022-04-08 11:25
我来回答
共1个回答
热心网友
时间:2022-04-08 12:54
索引原理是一种利用某种规则的数据结构与实际数据的关系加快数据查找的功能;索引数据节点中有着实际文件的位置,因为索引是根据特定的规则和算法构建的,在查找的时候遵循索引的规则可以快速查找到对应数据的节点,从而达到快速查找数据的效果。
总结来所有通过某规则数据结构和实际目标关联,根据特定规则算法快速寻址的功能都可以称之为索引。
在查找的时候遵循索引的规则可以快速查找到对应数据的节点,从而达到快速查找数据的效果;其实宏观来说索引其实是一种概念而不是具体的某项技术,只是我们在某个技术中运用得比较广泛和鲜明,比如说数据库。
其实在生活中索引的使用无处不在,比如说:书本里的目录;读书时的座位号,考试编号都有类似索引的功能。
索引结构上主要分为聚簇索引和非聚簇索引,聚簇索引是指索引的结构和排列规则是和实际数据的存储结构和排列规则是一样的。非聚簇索引则可能是通过其他算法规则构成的一种索引结构,索引的结构和实际数据存储的结构是不同的。
使用索引很简单,只要能写创建表的语句,就肯定能写创建索引的语句,要知道这个世界上是不存在不会创建表的服务器端程序员的。然而, 会使用索引是一回事, 而深入理解索引原理又能恰到好处使用索引又是另一回事,这完全是两个天差地别的境界。很大一部份程序员对索引的了解仅限于到“加索引能使查询变快”这个概念为止。
事物都是有两面的, 索引能让数据库查询数据的速度上升, 而使写入数据的速度下降,原因很简单的, 因为平衡树这个结构必须一直维持在一个正确的状态, 增删改数据都会改变平衡树各节点中的索引数据内容,破坏树结构, 因此,在每次数据改变时, DBMS必须去重新梳理树(索引)的结构以确保它的正确,这会带来不小的性能开销,也就是为什么索引会给查询以外的操作带来副作用的原因。