database-opslisted
Install: claude install-skill afine907/skills
# Database Ops — 数据库设计与运维全流程
自然语言描述 → 完整数据库方案(选型 + DDL + 索引 + 迁移脚本 + 性能建议),一次输出。
不适用:已有数据库的运维操作(直连数据库执行);纯 ORM 模型定义(非数据库设计);数据备份恢复脚本。
## Goal
数据库设计与运维全流程技能。自然语言描述 → 数据库选型 + 表结构设计 + 索引策略 + 迁移脚本 + 性能调优
## Trigger
- 用户说"设计数据库"、"建表"、"数据库选型"
- 用户要求生成索引策略、迁移脚本、性能调优建议
- 用户描述业务场景需要推荐数据库类型和表结构
## 工作流程
```
描述需求 → 选择数据库 → 设计表结构 → 设计索引 → 生成迁移脚本 → 性能建议
```
### Step 1: 收集需求
从用户描述中提取:
- **业务场景**:电商、社交、SaaS、IoT、游戏、金融等
- **数据规模**:预估行数、增长速度
- **读写比例**:读多写少 / 写多读少 / 均衡
- **一致性要求**:强一致 / 最终一致
- **已有技术栈**:Go/Python/Java/Node.js、已有 ORM
- **业务实体**:用户提到的表/实体及其关系
如果信息不足,询问 1-2 个关键问题,不要过度追问。
### Step 2: 选择数据库
根据业务场景匹配数据库类型,读取 [references/database-comparison.md](references/database-comparison.md) 获取全品类选型指南。
**选型决策流**:
1. 确定数据模型 → 关系/文档/图/时序/向量
2. 确定访问模式 → OLTP/OLAP/搜索/缓存
3. 考虑规模、一致性、运维复杂度
| 数据模型 | 推荐数据库 |
|----------|-----------|
| 结构化关系数据 | MySQL / PostgreSQL |
| 灵活文档 schema | MongoDB |
| 缓存/会话/排行榜 | Redis |
| 社交关系/推荐 | Neo4j / NebulaGraph |
| 监控指标/时序 | TimescaleDB / VictoriaMetrics |
| 全文搜索/日志 | Elasticsearch / MeiliSearch |
| 向量检索/RAG | pgvector / Milvus / Qdrant |
| 实时分析/OLAP | ClickHouse / StarRocks |
| 事件流/消息 | Kafka / RabbitMQ |
| 分布式强一致 | TiDB / CockroachDB / OceanBase |
| 嵌入式/单机 | SQLite / DuckDB |
### Step 3: 设计表结构
读取 [references/schema-design.md](references/schema-design.md) 获取各数据库的表设计模式。
生成内容:
- DDL(CREATE TABLE)含字段类型、约束、默认值
- 字段命名规范(snake_case、有意义的名称)
- 必要字段:id、created_at、updated_at、is_deleted(软删除)
- 外