feat: add multi-database support (MySQL, PostgreSQL, SQLite) with parameterized queries

This commit is contained in:
HibiKier
2025-12-29 16:49:49 +08:00
parent 601738c421
commit 7ec11474f8
2 changed files with 91 additions and 25 deletions
+13 -7
View File
@@ -223,15 +223,16 @@ zhenxun/
## 性能预期
| 指标 | 优化前 | 优化后 | 提升 |
| -------------- | ------- | -------- | -------- |
| 指标 | 优化前 | 优化后 | 提升 |
| -------------- | ------- | ---------- | -------- |
| DB 查询次数 | 6-10 次 | **1-3 次** | 70-85%↓ |
| 平均延迟 | ~50ms | ~10ms | 80%↓ |
| Redis 连接压力 | 高 | 低 | 显著降低 |
| 平均延迟 | ~50ms | ~10ms | 80%↓ |
| Redis 连接压力 | 高 | 低 | 显著降低 |
### 查询优化详情
**优化前(5-7 次 DB 查询):**
1. UserConsole - 用户金币
2. LevelUser (全局) - 全局权限等级
3. LevelUser (群组) - 群组权限等级
@@ -242,9 +243,14 @@ zhenxun/
8. BotConsole - Bot 信息
**优化后(1-3 次 DB 查询):**
1. **单条复合 SQL** - 使用 UNION ALL 合并 UserConsole + LevelUser + BanConsole(1次)
2. GroupConsole - **内存缓存 60s**,变化时失效(0-1次)
3. BotConsole - **内存缓存 300s**,变化时失效(0-1次)
1. **单条复合 SQL** - 使用 UNION ALL 合并 UserConsole + LevelUser + BanConsole(1 次)
- ✅ 支持 **MySQL** (使用 `%s` 占位符)
- ✅ 支持 **PostgreSQL** (使用 `$1, $2...` 占位符)
- ✅ 支持 **SQLite** (使用 `?` 占位符)
- ✅ 使用**参数化查询**防止 SQL 注入
2. GroupConsole - **内存缓存 60s**,变化时失效(0-1 次)
3. BotConsole - **内存缓存 300s**,变化时失效(0-1 次)
**最优情况**:缓存命中时只需 1 次 DB 查询
**最差情况**:3 次 DB 查询(全部未命中缓存)