在MySQL中,非主键索引的叶子节点存放的是行指针而不是主键值。当创建一个非主键索引时,MySQL会将索引的键值与对应的行指针(也称为物理地址)关联起来,并将这些关联信息存储在索引的叶子节点中。

当查询命中了非主键索引时,MySQL会首先在索引的叶子节点中找到对应的行指针,然后再通过这个行指针去找到对应的数据行。这个过程称为“回表”,因为在索引中找到了行指针后要回到原始数据表中找到实际的数据行。

相比之下,主键索引的叶子节点存放的是主键值而不是行指针。这是因为主键索引是表的主键,而主键是用来唯一标识每一行数据的。所以,当查询命中了主键索引时,MySQL可以直接通过主键值找到对应的数据行,而无需再进行回表操作。这也是为什么主键索引的查询性能通常比非主键索引更高效的原因之一。

Mysql非主键索引叶子节点存放的是主键值还是行指针

原文地址: https://www.cveoy.top/t/topic/hTRV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录