MySQL创建索引USING BTREE有和没有区别是什么?-灵析社区

颜如玉你信不信

CREATE INDEX idx_name ON table_name(column_name); CREATE INDEX idx_name ON table_name(column_name) USING BTREE; 上面是MySQL创建索引的语句,我想问一下USING BTREE有和没有区别是什么?我看有些文章【[https://www.cnblogs.com/zqlmianshi/p/17291575.html](https://link.segmentfault.com/?enc=z2dxfqr4pokiZfelOVYeIA%3D%3D.NsB%2FzWMRgS2onGAuXhN%2BU%2BJ9dIkQz%2BP9KruHAzqNCJ4RcCweUE8wcJ2%2BRC96jhIavvxTcObyM56Qfi5OM39NRQ%3D%3D)】说没有USING BTREE是创建B-Tree索引结构,有USING BTREE是创建创建B+Tree索引结构。 我在navicat上试了一下发现没有区别: ![](https://wmlx-new-image.oss-cn-shanghai.aliyuncs.com/images/20241024/14f3199bed24e413408f88b0953e7c71.png) 所以问问各位的意见, * (1)USING BTREE有和没有区别是什么? * (2)USING BTREE中的BTREE是B+树还是B树?

阅读量:12

点赞量:0

问AI
我觉得这个问题,B 树的起名者起码得背一半锅。 人们所说的 B-Tree 的中间那个 "-" 是连字符 、而非减号 。你也可以省略它,直接写作 B Tree。 而 B+Tree 本来就是一种 B-Tree(即所谓的变种树)。 二者的关系就好比阳光玫瑰跟葡萄的关系(吃葡萄 ing... 😀) —— 阳光玫瑰跟巨峰之间可以对比,但你说阳光玫瑰跟葡萄有啥可对比的呢?葡萄本身有的特征,阳光玫瑰一样全都具备;但反过来说阳光玫瑰有一些独有的特征,葡萄这个大类却不一定都具备。 所以 B-Tree 跟 B+Tree 并不是非此即彼的关系。 目前 MySQL 中无论哪种存储引擎,但凡涉及到 B-Tree 的,一律都是用的 B+Tree。 P.S. 所以你贴的那篇文章吧……不能说它写错了,但确实非常容易给人造成误解,以为里面提到的 B+Tree 跟 B-Tree 是俩东西。