关于 Mysql 的 b+树顺序存储的问题

270 天前
 deku9
八股文都说 b+树优点是范围查询,叶子节点顺序存储。
那么请问 varchar 、char 这种类型的字段做索引,是如何顺序存储的。
或者说 b+树只有数值类型的字段做索引才能顺序存储嘛?
1411 次点击
所在节点    MySQL
6 条回复
orikey
270 天前
只要有字典序 数字和字符又有什么区别呢
ch3nOr
270 天前
varchar 、char 也能比较大小,能比较大小就能排序
thedinosaurmail
270 天前
字符串可以 ascii 比较 , 怎么比较可以看 mysql 的 Collation
https://dev.mysql.com/doc/refman/8.0/en/adding-collation.html#:~:text=A%20collation%20is%20a%20set,orders%20characters%20based%20on%20weights.

一般用: utf8mb4_unicode_ci
CEBBCAT
270 天前
首先是一些问题可以先问一下 GPT ,其次是这个问题可以结合 MySQL B-Tree 的具体结构、实现来研究

比如说你测试给一个 VARCHAR 字段建立索引,能建立,EXPLAIN 显示能用上,那就是有效果。接下来自然而然就是 MySQL 如何实现相关机制。
cheng6563
269 天前
字符串能排序比大小的啊,只是要注意字符串字段中的 10<1
cheng6563
269 天前
@cheng6563 打错了,是"10"<"2"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1018564

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX