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 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题