BDB如何建立多级索引表

本文介绍了BDB数据库中如何创建多级索引,特别是针对BDB仅支持单个关键字的情况,提出了将多个索引关键字组合放入主键中的策略。通过详细阐述可能的查询组合,解释了如何使用secondary接口,并提供了创建子表和关联主表的建议。
摘要由CSDN通过智能技术生成

         至于BDB是什么? 我就不多解释了。

         今天想说说关于BDB的多级索引的创建。

         在BDB中提供四种算法接口, 哈希(hash)  二叉平衡树(BTREE) 队列(QUEUE) 有序记录(RECNO)

         至于哪种数据结构常用,不好说。 看具体业务需求!

         QUEUE/RECNO 数据结构不支持用户层索引,BDB底层提供常数型索引,对用户层来说没有实际的意义

         通常用来当作栈等数据结构来用。注意的是QUEUE是一种消耗性数据结构, 通过DB句柄读取数据后然后删除刚读取的数据。

         今天我要讲的是hash/btree这两种数据结构

         BDB中提供一个 secondary的接口来做多级索引,但是他给的例子以及网上给的例子本人觉得不是十分的好。更确切的说不是十分的恰当。我今天想说说怎么创建多级索引,以及BDB提供的secondary的接口到底怎么用。

        比如说我们想创建一个表 TABLE_USER

       表的字段列表如下

       KEY_1, KEY_2, KEY_3, KEY_4, FIELD_1, FIELD_2, ... ,FIELDn

        如上述,表中有4个索引关键字,可是我们知道BDB中只支持1个关键字, 在BDB中提供的资料一个网上的资料中给的方案是把索引关键字KEY_1放在BDB提供的关键字中,剩下的所有关键字全部放在记录段中。但是这样做就有个问题, BDB的primary表的索引关键字必须是唯一的,如果再给KEY_1添加一个唯一性索引号,这样肯定不行,查询起来也很不方便。一般有人认为BDB提供的这个接口是用来关联2个表的,其实不是。为了满足BDB表primary的关键字必须唯一性

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值