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

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

  •  
  •   linxiaoziruo · 270 天前 · 482 次点击
    这是一个创建于 270 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

        1
    wind3110991   270 天前   ♥ 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
        2
    CaptainKevin   270 天前 via Android   ♥ 1
    name 的值作为 b+树排序的键,name 所在记录的主键 id 作为 b+树相应节点所在的值
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   4507 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 22ms · UTC 06:14 · PVG 14:14 · LAX 23:14 · JFK 02:14
    ♥ Do have faith in what you're doing.