Kevin.Y.K 2019-08-22 10:34 采纳率: 0%
浏览 3519

聚簇索引、非聚簇索引、二级索引的概念区别



查看网上各种博客对这些概念的解读,基本上都是千篇一律,但是在论述过程中都指向了一本书《高性能MySQL第三版》。



通过对《高性能MySQL第三版》中文版和英文版的查看,其中也没有说明白或者完全界定这些概念的区别。


聚簇索引(Clustered indexes)是指索引和数据是在同一个结构里,聚簇索引的顺序就是数据的物理存储顺序。

非聚簇索引(Non-clustered indexes)反之。


对于InnoDB和MyISAM引擎中的索引,都分为主键索引(primary key)和二级索引(secondary index);



在InnoDb中,强制使用主键作为聚簇索引,B+ Tree叶子节点存储就是主键数据,而二级索引的叶子节点存储的是主键的键值;



在MyISAM中,主键索引与二级索引没什么区别,都是存储的数据行对应的地址。



但是书中又把InnoDB作为聚簇索引的代表、MyISAM作为非聚簇索引的代表,两者进行比较,这就导致了矛盾点,如果将二级索引等价于非聚簇索引,那InnoDB就不能完全代表聚簇索引;但是单从二级索引的存储形式来看,又属于非聚簇索引。懵了...

图片说明

  • 写回答

4条回答 默认 最新

  • Kevin.Y.K 2019-08-22 10:43
    关注

    主要的问题是:
    InnoDB的二级索引就是非聚簇索引吗?如果是的话,那InnoDB就应该定位为聚簇索引与非聚簇索引项结合,这个又与InnoDB定位聚簇索引相矛盾。

    评论

报告相同问题?

悬赏问题

  • ¥15 SQL Server下载
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件
  • ¥15 不同系统编译兼容问题
  • ¥100 三相直流充电模块对数字电源芯片在物理上它必须具备哪些功能和性能?
  • ¥30 数字电源对DSP芯片的具体要求