登录
首页 >  数据库 >  MySQL

InnoDB 非唯一索引重复键是如何排列的?

时间:2024-11-11 12:13:07 420浏览 收藏

本篇文章给大家分享《InnoDB 非唯一索引重复键是如何排列的?》,覆盖了数据库的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

InnoDB 非唯一索引重复键是如何排列的?

innodb 非唯一索引重复键排列

当 innodb 引擎下的非唯一索引包含重复键值时,其排列方式引发了疑问。一些资料提到使用溢出页进行哈希冲突处理,而另一些则对此予以否认。

排列机制

事实上,非唯一索引会同时存储对应行的主键 id。这意味着,即使索引字段具有重复值,b+树也会按照主键 id 进行排序。

示例

假设以下两条记录具有相同的非唯一索引值“ccc”:

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

在这种情况下,b+树中的排列如下:

+-------------+-------------+
| name       | record_ptr  |
+-------------+-------------+
| ccc         | 4           |
+-------------+-------------+
| ccc         | 5           |
+-------------+-------------+

在这个例子中,b+树的叶节点存储了索引字段值“ccc”和对应行的主键 id(4 和 5)。因此,可以通过主键 id 来区分具有重复索引值的记录。

好了,本文到此结束,带大家了解了《InnoDB 非唯一索引重复键是如何排列的?》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多数据库知识!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>