V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
linxiaoziruo
V2EX  ›  问与答

我知道怎么用 b+树索引字段类型是数字的数据,但是怎么用 b+树索引字段类型是字符串类型的数据呢?

  •  
  •   linxiaoziruo · 2019-01-17 16:21:40 +08:00 · 1639 次点击
    这是一个创建于 1898 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如有一张表,主键 ID 是数组,我知道 B+树是怎么存储 ID 作为索引的。但是有另外一个 name 字段,name 字段是字符串类型的,在 name 字段上建索引,这个索引结构是什么样子的呢? B+树是怎么存储 name 字段的索引的呢?

    wind3110991
        1
    wind3110991  
       2019-01-17 17:29:33 +08:00   ❤️ 1
    可以默认按 name 首字母来顺序排序,以 InnoDB 为例子:
    例如:Alice、Allen、Ben、Bob、Peter

    那么可能上一级索引为:
    A -> B ->P

    然后卫星节点(叶子)为:
    ( 1 ) Alice -> Allen -> Ben -> Bob -> ( 2 ) Peter

    当然,name 作为字符串的话,你也可以选择以字符串的一部分建立索引:
    Al -> Be ->Bo -> Pe

    叶子为:
    ( 1 ) Alice->Allen -> ( 2 ) Ben ->Bob -> Peter
    CaptainKevin
        2
    CaptainKevin  
       2019-01-18 10:27:59 +08:00 via Android   ❤️ 1
    name 的值作为 b+树排序的键,name 所在记录的主键 id 作为 b+树相应节点所在的值
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2767 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 12:18 · PVG 20:18 · LAX 05:18 · JFK 08:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.