【导读】
本篇博客讲解的是 2020 年由清华大学李国良教授团队发表在 ICDE 上的论文,介绍它所提出的算法与实验结果,并结合实际情况给出一些思考。
原文链接:
http://dbgroup.cs.tsinghua.edu.cn/ligl/papers/icde2020-learnedjoinorder.pdf

Part 1 - 背景
连接顺序选择 (Join Order Selection, JOS) 是一个为 SQL 查询寻找最佳连接顺序的问题。作为数据库查询优化器的主要关注点已经被广泛研究了几十年。这个问题很难,因为它的解空间很大,彻底遍历解空间来寻找最佳连接顺序的代价是非常昂贵的。传统的方法通常基于基数估计和代价模型,与启发式剪枝相结合,通过一些剪枝技术来缩小搜索可能的连接顺序的解空间。
尽管经过几十年的努力,传统的优化器在处理复杂的 SQL 查询时仍然存在低可扩展性或低准确性的问题。基于动态规划 (DP) 的算法通常会选择最优方案,但代价非常昂贵。启发式方法,如 GEQO、QuickPick-1000 和 GOO,可以更快地计算计划,但往往产生糟糕的计划。
近年来,基于机器学习 (ML) 和深度学习 (DL) 的基于学习的优化器 (Learned Optimizer) 方法在数据库界越来越受欢迎。特别是基于深度强化学习 (Deep Reinforcement Learning, DRL) 的方法,如 ReJOIN 和 DQ,已经显示出了令人满意的结果 —— 它们可以生成与原生查询优化器一样好的计划,但在学习后执行的速度相比原生查询优化器更快。但是,现有的基于 DRL 的学习优化器将连接树编码为固定长度的向量,其中向量的长度由数据库中的表和列决定。这将导致两个问题:
1. 这些向量不能捕获连接树的结构信息,可能会导致连接顺序选择到一个糟糕的计划 ;
2. 当数据库模式发生变化,如添加列 / 表或多别名表名时,这个基于学习的优化器将会失效,这需要一个新的不同长度的输入向量,然后再重新训练神经网络。
在本文中,作者提出了一种新的基于学习的优化器 RTOS,它使用强化学习和树状结构长短期记忆 (tree-LSTM) 来进行连接顺序选择。RTOS 对现有的基于 DRL 的方法进行了两方面的改进:
(1) 采用图神经网络来捕获连接树的结构 ;
(2) 支持对数据库模式和多别名表名的修改。
在 Join Order Benchmark (JOB) 和 TPC-H 上的大量实验表明,RTOS 优于传统优化器和现有的基于 drl

本文介绍了RTOS,一种使用深度强化学习和树状结构长短期记忆网络解决SQL查询连接顺序选择问题的方法。相较于传统优化器和现有DRL方法,RTOS能更好地捕获连接树的结构信息,适应数据库模式变化,并在成本和延迟上表现出色。实验结果显示,RTOS在多个基准上优于其他方法,尤其是在复杂查询和多别名表名场景下。
最低0.47元/天 解锁文章
263

被折叠的 条评论
为什么被折叠?



