关于Mysql InnoDB下非唯一索引如果出现重复键

Mysql在InnoDB引擎下,非唯一索引如果出现重复键,底层B+树具体是怎么排列的呢?
我看了一些资料,有人说是用溢出页,也就是类似HashMap的哈希冲突时采用的拉链法,也有人说不对,所以想问一下到底是怎么实现的?

阅读 2.5k
1 个回答

非唯一索引(是一种辅助索引)会同时存储对应行的主键id,所以非唯一索引相同时,会按记录的主键进行排序,如非唯一索引字段为name,有以下两条记录

记录1:id=4, name='ccc'
记录2:id=5, name='ccc'

那么在B+树里就是这样排序的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题