中文

“索引”根本不存在!——兼论下一个 500 篇索引论文

数据库 2021-09-17 v2

摘要

索引结构是查询处理乃至整个计算机科学的基本构件。自计算机技术诞生以来,索引结构便已存在。自那时起,每年都有无数索引结构被发明并发表。在本文中,我们认为“发明一种索引”这一想法本身就是一个误导性的概念。它类似于“发明一个物理查询计划”。本文是一种范式转变,我们提议彻底放弃手工定制索引结构(从二叉搜索树到 B-树乃至任何形式的学习索引皆如此)的思路。我们提出了一种称为索引结构的遗传泛型生成(GENE)的自动索引培育框架。其基于如下观察:几乎所有索引结构都沿三个主要维度组装:(1) 结构构件,例如 B-树由两种不同结构节点类型(内部节点和叶节点)组装而成;(2) 若干不变式,例如对于 B-树所有路径长度相同;(3) 节点内部布局的决策(行或列布局等)。我们提出了一种可沿这些维度模仿许多现有索引结构的通用索引框架。基于该框架,我们提出了一种通用遗传索引生成算法,该算法在给定工作负载和优化目标的情况下,能够自动组装并变异,换言之“培育”出新的索引结构“物种”。在我们的实验中我们遵循多个目标。我们重新审视了数据库技术中一些古老的智慧。给定特定工作负载,GENE 是否会培育出等价于我们教科书和论文目前针对此类工作负载所推荐的索引?或者我们还能做得更多?我们的初步结果强烈表明,生成的索引是设计索引结构的下一步。

关键词

引用

@article{arxiv.2009.10669,
  title  = {There is No Such Thing as an "Index"! or: The next 500 Indexing Papers},
  author = {Jens Dittrich and Joris Nix and Christian Schön},
  journal= {arXiv preprint arXiv:2009.10669},
  year   = {2021}
}

备注

revise intro, extend related work by "Genetic Algorithms" and "Decoupling Logical and Physical Indexes", revise experimental evaluation (remove "6.1 Benchmarking Baselines", rename and revise "6.3 Fitness vs Generation", remove "6.4 Breeding State-of-the-Art Index Structures", remove "6.5 Breeding Index Structures on Mixed Workloads", add new experiment "Optimized vs Heuristic Indexes")