1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户PostgreSQL 主键不用自增ID有会页分裂吗?
会有页分裂的
针对 B + 树叶子节点,如果主键是自增的,那它产生的 id 每次都比前一次要大,所以每次都会将数据加在 B + 树尾部,B + 树的叶子节点本质上是双向链表,查找它的首部和尾部,时间复杂度 O (1) 。而如果此时最末尾的数据页满了,那创建个新的页就好。
如果主键不是自增的,比方说上次分配了 id=7,这次分配了 id=3,为了让新加入数据后 B + 树的叶子节点还能保持有序,它就需要往叶子结点的中间找,查找过程的时间复杂度是 O (lgn) ,如果这个页正好也满了,这时候就需要进行页分裂了。
而自增主键可以让主键索引尽量地保持递增顺序插入,也就避免了页分裂
评论
有用 1
墨值悬赏