littlebot
Published on 2025-04-03 / 0 Visits
0

【源码】基于C++和NUMA架构的数据库查询优化系统

项目简介

本项目是基于C++编程语言和NUMA(Non-Uniform Memory Access)架构的数据库查询优化系统。借助多线程并行处理、基数估计和查询重写等技术,提升数据库查询的性能和效率。支持从Docker容器拉取预封装环境和代码,还提供详细安装使用步骤。

项目的主要特性和功能

  1. 多线程并行处理:利用NUMA架构多核CPU性能,以多线程方式处理数据和执行查询,提升处理速度。
  2. 基数估计:采用1 - D Histogram方法,优化join和filter操作的基数估计,提高查询优化效果。
  3. 查询重写:通过并查集算法实现取值范围、条件和投影传播,删除冗余join,增加筛选条件,减少子任务基数。
  4. Docker支持:提供Docker镜像,便于用户快速部署和测试系统。
  5. 统计信息构建:在数据预处理阶段计算数据库各表的最小值、最大值和不重复元素个数,为查询优化提供数据支持。

安装使用步骤

假设用户已下载本项目的源码文件,按以下步骤操作:

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】