Skip to content

Ayousleep/-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MySQL优化系统

基于OpenClaw的数据库优化Agent,能够将自然语言查询转换为高效的MySQL查询语句。

🚀 功能特性

  • 自然语言转SQL:输入中文查询描述,自动生成优化的MySQL语句
  • 查询优化建议:提供详细的性能优化建议和最佳实践
  • 数据库连接管理:支持连接和管理多个MySQL数据库
  • 性能分析:分析SQL查询的执行计划和性能指标
  • 查询历史:保存和重用之前的查询优化记录
  • 实时优化:基于OpenClaw AI进行实时查询优化

📁 项目结构

MySQL优化系统/
├── backend/                    # 后端服务
│   ├── app.py                 # FastAPI主应用
│   ├── openclaw_client.py     # OpenClaw客户端
│   ├── mysql_optimizer.py     # MySQL优化器
│   ├── database_connector.py  # 数据库连接器
│   └── requirements.txt       # Python依赖
├── frontend/                   # 前端界面
│   ├── index.html            # 主页面
│   ├── styles.css            # 样式文件
│   └── app.js                # JavaScript逻辑
└── README.md                   # 项目文档

🛠️ 安装和运行

前提条件

  • Python 3.8+
  • Node.js 16+ (可选,用于前端开发)
  • MySQL 5.7+ 或 8.0+
  • OpenClaw服务(可选,用于AI优化)

1. 克隆项目

git clone <repository-url>
cd MySQL优化系统

2. 安装后端依赖

cd backend
pip install -r requirements.txt

3. 配置环境变量(可选)

创建 .env 文件:

# OpenClaw配置
OPENCLAW_API_URL=http://localhost:30000/v1
OPENCLAW_API_KEY=your_api_key

# 数据库配置
MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database

# 应用配置
APP_HOST=0.0.0.0
APP_PORT=8000

4. 启动后端服务

cd backend
python app.py

后端服务将在 http://localhost:8000 启动。

5. 启动前端

直接在浏览器中打开 frontend/index.html 文件,或者使用简单的HTTP服务器:

cd frontend
python -m http.server 3000

然后访问 http://localhost:3000

📖 使用指南

查询优化

  1. 在"查询优化"页面输入您的查询需求
  2. 选择数据库连接(可选)
  3. 选择优化级别
  4. 点击"优化查询"按钮
  5. 查看生成的优化SQL和性能建议

示例查询

  • "查询所有用户的订单信息,按订单金额降序排列"
  • "统计每个类别的产品数量"
  • "查找最近30天内的活跃用户"
  • "更新所有未付款订单的状态"

数据库连接

  1. 在"数据库连接"页面填写连接信息
  2. 点击"测试连接"验证配置
  3. 点击"保存连接"保存配置
  4. 在查询优化时选择已保存的连接

性能分析

  1. 在"性能分析"页面输入SQL语句
  2. 点击"分析性能"按钮
  3. 查看执行计划和优化建议

🔧 API接口

查询优化

POST /api/optimize-query
Content-Type: application/json

{
    "query": "查询所有用户的订单信息",
    "database_id": "optional-connection-id",
    "schema_info": "optional-schema-info"
}

数据库连接

POST /api/connect-database
Content-Type: application/json

{
    "host": "localhost",
    "port": 3306,
    "user": "root",
    "password": "password",
    "database": "mydb"
}

获取表结构

GET /api/schema/{connection_id}

执行查询

POST /api/execute-query?connection_id=xxx&sql=SELECT...

性能分析

POST /api/analyze-performance
Content-Type: application/json

{
    "connection_id": "xxx",
    "sql": "SELECT * FROM users"
}

🧠 OpenClaw集成

本系统使用OpenClaw作为AI后端,提供智能查询优化功能。

OpenClaw配置

  1. 安装OpenClaw:https://openclaw.ai/
  2. 启动OpenClaw服务
  3. 配置API端点(默认:http://localhost:30000/v1)

自定义优化规则

可以在 openclaw_client.py 中自定义优化规则:

def _build_system_prompt(self, schema_info):
    # 自定义系统提示
    prompt = """你的自定义优化规则..."""
    return prompt

🎨 自定义界面

修改主题颜色

styles.css 中修改CSS变量:

:root {
    --primary-color: #3b82f6;
    --primary-dark: #2563eb;
    /* 其他颜色变量 */
}

添加新功能

  1. 在后端添加新的API端点
  2. 在前端添加相应的UI组件
  3. 在JavaScript中添加事件处理逻辑

🐛 故障排除

常见问题

Q: 无法连接到后端服务 A: 确保后端服务已启动,并检查端口8000是否被占用。

Q: OpenClaw优化不工作 A: 系统会自动降级到本地优化逻辑,确保OpenClaw服务正常运行。

Q: 数据库连接失败 A: 检查数据库配置是否正确,确保MySQL服务正在运行。

Q: 查询历史丢失 A: 历史记录保存在浏览器的localStorage中,清除浏览器数据会丢失历史。

调试模式

在浏览器中打开开发者工具(F12),查看Console标签页的错误信息。

📊 性能优化建议

MySQL优化最佳实践

  1. 使用索引:为WHERE、ORDER BY、GROUP BY的列创建索引
  2. **避免SELECT ***:只选择需要的列
  3. 使用LIMIT:限制返回的行数
  4. 优化JOIN:使用适当的JOIN类型,确保JOIN条件有索引
  5. 避免子查询:使用JOIN替代子查询
  6. 使用覆盖索引:减少回表查询
  7. 定期优化表:使用ANALYZE TABLE和OPTIMIZE TABLE

查询优化示例

优化前:

SELECT * FROM users WHERE status = 'active';

优化后:

SELECT id, name, email 
FROM users 
WHERE status = 'active' 
LIMIT 1000;

🤝 贡献指南

欢迎贡献代码和提出建议!

  1. Fork项目
  2. 创建功能分支:git checkout -b feature/your-feature
  3. 提交更改:git commit -m 'Add some feature'
  4. 推送分支:git push origin feature/your-feature
  5. 创建Pull Request

📄 许可证

本项目采用MIT许可证。详见 LICENSE 文件。

🙏 致谢

📞 联系方式

如有问题或建议,请通过以下方式联系:


享受优化您的MySQL查询! 🚀

About

这个项目可以让你用中文直接转化成MySQL语言查询数据

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors