项目简介
本项目是基于C++实现的查询优化器,聚焦于数据库查询的代价优化。借助统计信息收集、选择度估计、代价估计和路径选择与计划生成四个核心模块,能有效优化查询执行计划,提升数据库查询性能。
项目的主要特性和功能
- 统计信息收集:收集数值型数据的直方图信息并存储于
relstatistics
表,采用蓄水池抽样法进行数据采样,保障统计信息准确公平。 - 选择度估计:依据收集的统计信息开展单表和多表的选择度估计,支持直方图和公式两种估计方式,确保估计准确。
- 代价估计:对顺序扫描和索引扫描的代价进行估计,计算连接操作的代价,从而选出最优执行路径。
- 路径选择与计划生成:运用动态规划算法挑选最佳查询执行路径,生成最优执行计划以提升查询性能。
安装使用步骤
环境准备
- 确保已安装CMake和CLion编译器。
- 下载本项目的源码文件。
编译项目
- 可使用CLion打开项目,也可通过命令行使用CMake进行编译。
- 运行
cmake
命令生成构建文件,然后执行./microDBMS
启动程序。
使用示例
- 选择数据库:
use orderDB;
- 开启查询计划打印功能:
queryplans on;
- 收集统计信息:
analyze table tablename;
- 查看统计信息:
select * from relstatistics;
- 执行查询:
sql SELECT customer.name, book.title, orders.quantity FROM customer, book, orders WHERE orders.customer_id = customer.id AND orders.book_id = book.id AND orders.quantity > 8;
通过上述步骤,用户能有效利用本项目进行数据库查询优化,提升查询性能。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】