PostgreSQL seventh class

  1. 签名索引
    除了hash 之外 更好的索引方式
    A signature summarises the data from one tuple
//Generating a k-in-m codeword for attribute Ai

bits codeword(char *attr_value, int m, int k)
{
   int  nbits = 0;   // count of set bits
   bits cword = 0;   // assuming m <= 32 bits
   // 类似于 seed(1) 定好seed 之后 下面random 值都是固定的 
   // for example attribute 传进来 只要是 china seed 就是固定的
   srandom(hash(attr_value));
   while (nbits < k) {
   	// 根据 seed 的 值 取 随机数
      int i = random() % m;
      if (((1 << i) & cword) == 0) {
         cword |= (1 << i);
         nbits++;
      }
   }
   // m-bits with k 1-bits and m-k 0-bits
   return cword;  
}

cost page = bD + bQ
D是获取query index 所需要的pages
Q是用获取的query 与 有可能符合条件的 tuple 进行match 需要的pages

  1. 比较 如果有 500w 个 data pages 它对应的 page index pages 有 5000 个 而 bit-sliced pages 有可能只有几十个 海量降低page cost 大大提高读写效率, 这就是index 的作用。我想知道500w个data pages 的信息, 只需read 5000个bit-sliced pages 随即找到对应的query page 和 query tuple。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值