暂无图片
PostgreSQL 主键不用自增ID有会页分裂吗?
我来答
分享
暂无图片 匿名用户
PostgreSQL 主键不用自增ID有会页分裂吗?

PostgreSQL 主键不用自增ID有会页分裂吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
刘贵宾

会有页分裂的


针对 B + 树叶子节点如果主键是自增的,那它产生的 id 每次都比前一次要大,所以每次都会将数据加在 B + 树尾部,B + 树的叶子节点本质上是双向链表,查找它的首部和尾部,时间复杂度 O (1) 。而如果此时最末尾的数据页满了,那创建个新的页就好。


如果主键不是自增的,比方说上次分配了 id=7,这次分配了 id=3,为了让新加入数据后 B + 树的叶子节点还能保持有序,它就需要往叶子结点的中间找,查找过程的时间复杂度是 O (lgn) ,如果这个页正好也满了,这时候就需要进行页分裂了。


而自增主键可以让主键索引尽量地保持递增顺序插入,也就避免了页分裂

暂无图片 评论
暂无图片 有用 1
暂无图片
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏