前言
本项目以MySQL 8.0 DBA运维核心知识点为基础,结合硅基流动开源大模型API,构建一套电商订单库智能查询与性能调优系统。 系统可接收业务自然语言自动生成合规 MySQL查询语句,自动执行查询并输出结构化表格,依托大模型完 成订单数据业务解读,同时解析 SQL执行计划输出标准化索引优化方案,全程无需人工手写、分析SQL。 核心价值:无需专业 SQL开发能力即可完成业务数据查询,自动替代人工统计报表、手工分析执行计划等 重复性运维工作;深度融合 MySQL数据库运维能力与大模型自然语言解析能力,适配企业轻量化数据查 询、SQL性能优化、AI智能解读一体化落地场景。
一、项目说明
1.1 概述
项目共分为两个子项目,由Python和Redis两个部分组成。旨在复习巩固Python语言知识和Redis数据库使用,增加知识面与项目经历。
1.2 项目组织方式及时间
项目计划在一天内完成所有搭建、功能测试和问题总结。通过VMware 17虚拟机实现平台搭建,由个人独立完成。
二、项目背景知识
2.1 核心功能模块
在动手之前,梳理了需要实现的功能模块:
| 模块 | 功能 | 应用场景 |
|---|---|---|
| 连接管理 | __init__、connect,支持密码/超时设置 | 建立并检测连接状态 |
| 键操作 | 过期时间、删除、存在性检查 | 键的基础管理 |
| String | set_string/get_string | 用户昵称、计数器 |
| Hash | hset_hash/hgetall_hash | 用户信息等对象数据 |
| List | lpush_list/lrange_list | 消息队列 |
| Set | sadd_set/smembers_set | 标签、去重集合 |
| ZSet | zadd_zset/zrange_zset | 排行榜 |
2.2 错误处理
捕获
RedisConnectionError(连接失败)和通用RedisError(操作错误),打印友好提示连接失败时
redis_client设为None,避免后续操作报错
2.3 扩展场景
缓存系统:字符串存储热点数据,设置过期时间自动失效
用户在线状态:哈希存储登录信息,过期时间标记离线
排行榜:有序集合存储分数,实时更新排名
消息队列:列表的
lpush/rpop实现生产者-消费者模型
三、软硬件环境清单
需要准备的:
四、任务清单
- 4.1 项目环境搭建(虚拟机 + 关闭防火墙/SELinux)
4.2 安装redis-server(源码编译)
4.3 配置redis数据库(后台启动 + 远程连接)
4.4 Python配置(新建项目 + 安装redis库)
4.5 测试(连接测试 + 内容测试)
五、项目实施
5.1 环境搭建
安装虚拟机及系统过程略,直接从关键配置开始。
5.1.1 准备安装环境
关闭防火墙,禁用selinx和时间同步:
下载所需软件依赖
5.1.2.源码编译安装Python3.11.9
我的xftp 8 用不了 就直接用 SCP 命令传文件
确认文件存在后解压
编译配置
进入 Python 目录 cd Python-3.11.9 编译配置 ./configure --prefix=/usr/local/python3.11 --enable-shared 多核编译安装 make -j$(nproc) && make install 配置动态链接库 echo "/usr/local/python3.11/lib" > /etc/ld.so.conf.d/python311.conf
建立软连接
重启reboot后验证(-一定要是大写的V)
5.1.3.配置国内pip源及安装项目依赖
pip相关依赖
vim插入以下内容
5.1.4.部署并初始化MySQL 8.0.45
直接使用了之前的mysql
创捷所要用的库/表并插入数据
5.2.获取API Key
5.2.1创建key
5.3.脚本开发阶段
5.3.1.新建目录及脚本
手动编写.env脚本
编写mysql_client脚本
编写prompts脚本
编写main脚本
六.测试
6.1.项目执行
6.2.生产SQL测试
6.2.1.测试用例
七. web可视化版本
7.1. Streamlit介绍
Streamlit是开源、纯Python Web开发库,核心定位:不用写HTML/CSS/JS,只用Python就能快速做交互式网页,专门面向数据分析师、后端、AI工程师,把本地脚本一键变成可视化Web面板。
7.2.部署流程
7.2.1.原则
已有业务文件:main.py mysql_client.py prompts.py .env文件不变
需要编写web_main.py入口文件即可
7.2.2.安装Python依赖
注意:必须给python3.11.9安装依赖
7.2.3.创建Streamlit可视化入口web_main.py
7.2.4.创建systemd后台常驻服务
启动服务