adaptive-hybrid-indexes
index 是查询处理系统中性能影响的关键部分,DBMS 广泛采用 B-tree、trie、hash table,特别是 OLTP 系统的索引的存储开销非常大(一些场景下,一半以上的内存是由索引结构消耗的)。内存在现代数据库上加速效果非常明显,但很多场景下将所有数据放入内存已不可能。
作者把索引优化技术按介入的时间分为三个阶段:
development-time:单类型数据结构
- 设计 state-of-the-art 数据结构满足 CRUD 操作,整体均衡,重点对主要操作做优化。
- compact index 技术,减少内存空间,通常比 state-of-the-art index 要慢。例如 succinct index 通过减少数据结构上的 pointer 并在运行时计算 offset,在 lookup、scan、udpate 上性能差一些。
build-time:在一个 index(不同的数据块)上使用多种 encoding 组合,根据数据特征,在写入时选择数据结构。
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