从软件开发到 AI Systems:一次 PostgreSQL 学习型查询优化研究实践

发布时间:2026/10/23 3:47:25

从软件开发到 AI Systems:一次 PostgreSQL 学习型查询优化研究实践 写在前面本科毕业一年已经经历了一轮大厂实习-大厂入职-离职 的流程其中心路历程以后有机会写。目前在探索AI Systems学术路线所以这篇内容可以定位为本科生/程序员 转AI Systems科研路线的第一次研究实践。考虑到之前的工作经常和数据库打交道于是打算从database 来切入AI Systems 领域的研究。研究总览为什么值得研究一条SQL如何被Optimizer优化器处理什么是Optimizer简单来说数据库面对一条 SQL并不是直接执行而是先尝试设计一条“执行路线”。这个设计过程就是由Optimizer来完成SQL | v Optimizer选择执行方式 | v Execution Plan执行方案 | v Runtime实际耗时但优化器并不知道真实运行时间它只能根据内部成本模型预测哪种方案更快。它不是神并不能每次都估计对有时候Optimizer认为 Plan A 快 实际 Plan B 快问题来了能不能让机器学习帮它重新选择一张图讲清楚研究PostgreSQL | Candidate Plans | ----------------- | | XGBoost GNN (Tabular) (Graph) | | ----------------- | Better Plan Selection没有替换数据库Optimizer的成本估计模型。而是给数据库生成的候选方案重新排序。实验中几个有意思的发现更复杂的模型不一定更强。很多人认为图神经网络理解结构所以一定更好。但是实验发现一个强大的表格模型已经捕获大量信息这些信息足够让它在多数情况下做出最优解。但是复杂模型不是没用有趣的是GNN虽然整体较弱但它和XGBoost做出的判断并不完全一样。而且实验发现当 SQL 查询包含更多表连接、更复杂的执行结构时GNN 和 XGBoost 的表现差距逐渐缩小。说明复杂模型可能捕获了传统特征难以表达的信息。AI系统真正难的是选择问题不是哪个模型绝对更强而是什么时候应该相信哪个模型。项目完整代码本篇文章主要介绍的是宏观上的东西比如流程、主要洞察。但实际实验中有大量细节处理和实验方法比如如何让数据库生成尽可能多且丰富的执行计划执行计划如何打标签怎么把执行计划转成模型需要的“表示”怎么用 实验证明“互补信息”各种失败的实验踩的坑······这些都在项目的 GitHub 仓库如果对你有一些启发欢迎 star~项目完整代码实验如果你也对 AI Systems、数据库或者科研型项目感兴趣欢迎交流。另外这个项目也整理成了一篇 research paper draft发布在 arXiv。如果你想了解更完整的实验细节可以查看论文版本。
延伸阅读

更多相关文章

2026/10/21 21:12:13

浅谈眼镜商城app开发相关解决方案

由于电子设备的数量不断增多,对于人们视力的威胁也进一步提高,导致很多人从小眼睛变得近视。如何为自己搭配一副合适的眼镜成为当下许多人的诉求。虽然说去眼镜门店能获取对应的近视眼镜,但是门店往往提供的是合适的眼镜,但并不是…

2026/10/22 0:54:17

前端面试进阶:从刷题到体系化知识构建

1. 五年磨一剑:前端面试通关实录上周刚通过某大厂P7级前端面试,这是我职业生涯的第三次跳槽。与五年前那个对着算法题手忙脚乱的萌新不同,这次从技术面到HR面全程只用了两周时间。特别想记录下这个阶段性的成长,尤其是对比五年前后…

2026/10/20 2:39:53

Unity 2D飞行棋实战:从零构建完整游戏开发流程

最近在带新人做 Unity 2D 项目时,发现很多朋友对完整的游戏开发流程缺乏概念,从场景搭建到核心逻辑实现,再到UI交互,每一步都可能遇到意想不到的“坑”。本文将以经典的飞行棋游戏为蓝本,手把手带你从零开始&#xff0…

2026/10/23 3:43:49

电机驱动器通讯中断后失控?排查思路与保护策略全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 3:43:49

拟球形三维芯片架构:突破摩尔定律散热与互连瓶颈的新思路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 3:43:49

SPI与I2C协议详解:片间串行通信的取舍与调试实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 3:43:49

Windows 11 25H2官方镜像获取、启动盘制作与安装升级指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/23 3:38:49

macOS窗口置顶工具Topit使用指南:三步上手与避坑技巧

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 11:29:28

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/23 0:02:26

Verilog实现FPGA密码锁:矩阵键盘与状态机设计实战

说实话,这几年接触了不少想入门FPGA的朋友,如果你问哪个项目能一口气把Verilog的核心基本功串起来,我通常会推荐电子密码锁。这个项目看着不起眼,却把矩阵键盘扫描、按键消抖、状态机设计、动态显示刷新、外设控制这些数字逻辑里的…

2026/10/23 0:02:26

数据服务监控运维实战:从指标体系到告警治理与故障排查

周末凌晨两点,手机震了。第一反应是“数据服务挂了”。打开电脑看了下,果然,某张核心报表的数据产出时间已经超过SLA两小时,下游三个业务方连着发来问询。这种场景,做过大数据运维的人都不会陌生。数据服务的监控与运维…

2026/10/23 0:02:26

FreeRTOS任务通知实战详解:内核原理、API与避坑指南

裸机编程切到RTOS之后,任务之间的通信和同步永远是躲不开的坎。前面聊过队列、信号量、互斥锁、事件组,这次把FreeRTOS任务通知(Task Notification)单独拎出来讲透。原因很简单:任务通知是FreeRTOS里最容易用错、也最容…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑