数据库索引原理

页分裂

​ 当数据不断插入时,当数据页满了会产生页分裂,如果指定了主键并不是自增的,页分裂时也会维护为自增的,会将递增的主键放在一起,不会出现一个数据页中的主键比它页号小的数据页中的主键还要大的情况,如发生这种情况则会交换数据页中的数据,保证随着数据页的递增,主键也是递增的

主键索引目录

​ 每个数据页的页号会和数据页中的最小主键值放在一起,形成一个索引的目录,有了索引目录后,比如要查找id=3的数据,此时会跟每个数据页的最小主键来比,首先id=3大于了数据页2里的最小主键值1,小于数据页8中的最小主键值4,则说明数据在数据页2中,当有很多数据页的时候完全可以使用二分查找

​ 索引目录中存储着最小主键值和对应的数据页号,但是表中可能存在很多数据页,然后主键目录中会存放大量最小主键值和数据页号,这样也是不行,再考虑到这个问题之后,实际上采用了把索引数据存储在数据页的方式实现的,此时就为索引页,