美文网首页
9 普通索引和唯一索引应该怎么选择

9 普通索引和唯一索引应该怎么选择

作者: 滔滔逐浪 | 来源:发表于2023-10-07 11:08 被阅读0次

假设,执行查询的语句是 select id from T where k=6,这个查询语句在索引树上查找的过程,先是通过B+树从树根开始,按层搜索到叶子节点,然后可以通过B+树从树根开始,按层搜索到叶子节点,也就是图中右下角的这个数据页,然后可以认为数据页内部通过二分法来定位记录。对于普通索引来说,查找到满足条件的第一个记录(6,600)后需要查找下一个记录,直到碰到第一个不满足k=6条件的记录。对于唯一索引来说,由于索引定义了唯一性,查找到第一个满足条件的记录后会停止继续搜素。
什么条件下可以使用change buffer 呢? 对于唯一索引来说,所有的更新操作都要先判断这个操作是否违反唯一性约束。比如,要插入(4,4000)这个记录,就要先判断现在表中是否已经存在k=4,而这个必须要将数据页读入内存才能判断。如果已经读入到内存了,那直接更新内存会更快,就没必要使用change buffer。
由于唯一索引用不上 change buffer 的优化机制,因此如果业务可以接受,从性能角度出发建议你优先考虑非唯一索引。

相关文章

网友评论

      本文标题:9 普通索引和唯一索引应该怎么选择

      本文链接:https://www.haomeiwen.com/subject/upambdtx.html