项目简介
本项目是基于C++编程语言和NUMA(Non-Uniform Memory Access)架构的数据库查询优化系统。借助多线程并行处理、基数估计和查询重写等技术,提升数据库查询的性能和效率。支持从Docker容器拉取预封装环境和代码,还提供详细安装使用步骤。
项目的主要特性和功能
- 多线程并行处理:利用NUMA架构多核CPU性能,以多线程方式处理数据和执行查询,提升处理速度。
- 基数估计:采用1 - D Histogram方法,优化join和filter操作的基数估计,提高查询优化效果。
- 查询重写:通过并查集算法实现取值范围、条件和投影传播,删除冗余join,增加筛选条件,减少子任务基数。
- Docker支持:提供Docker镜像,便于用户快速部署和测试系统。
- 统计信息构建:在数据预处理阶段计算数据库各表的最小值、最大值和不重复元素个数,为查询优化提供数据支持。
安装使用步骤
假设用户已下载本项目的源码文件,按以下步骤操作:
1. 拉取Docker镜像
从Docker Hub拉取预封装的环境和代码:
shell
docker pull lhygood11229/db_final_hw:1.0.0
2. 创建并运行Docker容器
创建名为hw
的容器并运行:
shell
docker run -it --name hw lhygood11229/db_final_hw:1.0.0
3. 进入容器并编译代码
进入容器后,进入/home/flomige
目录并编译代码:
shell
cd /home/flomige
./compile.sh
4. 运行测试
进入/home/submission
目录并运行测试脚本:
shell
cd /home/submission
./runTestharness.sh
默认情况下,脚本会运行/home/submission/workload/small
并输出总耗时(单位ms)。
5. 自定义测试
若需测试其他workload,可修改./runTestharness.sh
脚本中的配置。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】