adaptive-hybrid-indexes

index 是查询处理系统中性能影响的关键部分,DBMS 广泛采用 B-tree、trie、hash table,特别是 OLTP 系统的索引的存储开销非常大(一些场景下,一半以上的内存是由索引结构消耗的)。内存在现代数据库上加速效果非常明显,但很多场景下将所有数据放入内存已不可能。

作者把索引优化技术按介入的时间分为三个阶段:

  1. development-time:单类型数据结构

    1. 设计 state-of-the-art 数据结构满足 CRUD 操作,整体均衡,重点对主要操作做优化。
    2. compact index 技术,减少内存空间,通常比 state-of-the-art index 要慢。例如 succinct index 通过减少数据结构上的 pointer 并在运行时计算 offset,在 lookup、scan、udpate 上性能差一些。
  2. build-time:在一个 index(不同的数据块)上使用多种 encoding 组合,根据数据特征,在写入时选择数据结构。

  3. run-time:build-time 是一种静态组合,单不考虑动态的 workload(工况),run-time 时可以拿到更多的 工况信息帮助优化索引结构。

论文提出一个框架:workload-adaptive hybrid index,将 encoding 决策时机延后到 run-time 进行。


adaptive-hybrid-indexes
https://codebells.github.io/post/adaptive-hybrid-indexes.html
作者
Codebells
发布于
2024年1月26日
更新于
2024年1月26日
许可协议