PlanetScale 数据库管理 #
本章将详细介绍如何管理 PlanetScale 数据库,包括创建、配置、监控和删除等操作。
创建数据库 #
通过 Web 控制台创建 #
text
┌─────────────────────────────────────────────────────────────┐
│ 创建数据库界面 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Create a new database │
│ │
│ Database name │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ my-database │ │
│ └─────────────────────────────────────────────────────┘ │
│ Only lowercase letters, numbers, and hyphens │
│ │
│ Region │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ AWS US East (us-east-1) ▼ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Cluster size │
│ ○ Hobby (Free) │
│ ○ Scaler ($29/month) │
│ ○ Scaler Pro (Custom) │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Create database │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
通过 CLI 创建 #
bash
# 基本创建
pscale database create my-database
# 指定区域
pscale database create my-database --region us-east-1
# 指定组织和区域
pscale database create my-database --org my-org --region us-east-1
# 查看创建状态
pscale database show my-database
输出示例:
text
NAME REGION STATE CREATED AT
my-database us-east-1 creating 2024-01-15 12:00:00
数据库命名规范 #
text
┌─────────────────────────────────────────────────────────────┐
│ 命名规范 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 规则: │
│ ✅ 小写字母 a-z │
│ ✅ 数字 0-9 │
│ ✅ 连字符 - │
│ ✅ 长度 2-63 字符 │
│ ❌ 大写字母 │
│ ❌ 下划线 │
│ ❌ 空格 │
│ ❌ 开头或结尾的连字符 │
│ │
│ 推荐命名: │
│ ✅ production-db │
│ ✅ user-service-db │
│ ✅ analytics-2024 │
│ ✅ staging-us-east │
│ │
│ 不推荐: │
│ ❌ ProductionDB │
│ ❌ user_service_db │
│ ❌ -production-db │
│ ❌ production-db- │
│ │
└─────────────────────────────────────────────────────────────┘
区域选择 #
可用区域 #
| 区域代码 | 区域名称 | 云服务商 | 延迟参考(从中国) |
|---|---|---|---|
| us-east-1 | US East (N. Virginia) | AWS | ~200ms |
| us-west-1 | US West (Oregon) | AWS | ~150ms |
| eu-west-1 | EU West (Ireland) | AWS | ~250ms |
| eu-central-1 | EU Central (Frankfurt) | AWS | ~230ms |
| ap-southeast-1 | Asia Pacific (Singapore) | AWS | ~50ms |
| ap-northeast-1 | Asia Pacific (Tokyo) | AWS | ~60ms |
| ap-south-1 | Asia Pacific (Mumbai) | AWS | ~100ms |
区域选择策略 #
text
┌─────────────────────────────────────────────────────────────┐
│ 区域选择决策树 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 用户主要分布在哪里? │
│ │ │
│ ├── 中国大陆 │
│ │ └── 推荐:ap-southeast-1 (新加坡) │
│ │ │
│ ├── 北美 │
│ │ ├── 东海岸 → us-east-1 │
│ │ └── 西海岸 → us-west-1 │
│ │ │
│ ├── 欧洲 │
│ │ ├── 西欧 → eu-west-1 │
│ │ └── 中欧 → eu-central-1 │
│ │ │
│ ├── 日本 │
│ │ └── 推荐:ap-northeast-1 │
│ │ │
│ └── 全球分布 │
│ └── 考虑多区域部署(需付费计划) │
│ │
│ 注意:区域一旦选定无法更改! │
│ │
└─────────────────────────────────────────────────────────────┘
多区域部署 #
text
┌─────────────────────────────────────────────────────────────┐
│ 多区域架构 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 主区域(读写): │
│ ┌─────────────┐ │
│ │ us-east-1 │ ← 写入和读取 │
│ │ Primary │ │
│ └──────┬──────┘ │
│ │ │
│ │ 异步复制 │
│ │ │
│ 只读区域: │
│ ┌──────┴──────┐ ┌─────────────┐ │
│ │eu-west-1 │ │ap-southeast │ │
│ │ Replica │ │ Replica │ │
│ └─────────────┘ └─────────────┘ │
│ │
│ 功能: │
│ - 降低全球用户延迟 │
│ - 提高读取可用性 │
│ - 需要 Scaler Pro 计划 │
│ │
└─────────────────────────────────────────────────────────────┘
集群大小 #
计划对比 #
| 特性 | Hobby (免费) | Scaler ($29/月) | Scaler Pro |
|---|---|---|---|
| 存储 | 5 GB | 100 GB | 自定义 |
| 行读取/月 | 10 亿 | 100 亿 | 自定义 |
| 行写入/月 | 1000 万 | 2 亿 | 自定义 |
| 分支数 | 2 | 5 | 无限 |
| 多区域 | ❌ | ❌ | ✅ |
| SLA | 无 | 99.9% | 99.95% |
| 支持 | 社区 | 优先 | 专属 |
容量规划 #
text
┌─────────────────────────────────────────────────────────────┐
│ 容量估算 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 存储估算: │
│ │
│ 用户表示例: │
│ - 每行约 500 字节 │
│ - 100 万用户 = 500 MB │
│ - 1000 万用户 = 5 GB │
│ - 1 亿用户 = 50 GB │
│ │
│ 读取估算: │
│ - 每次查询可能读取多行 │
│ - 假设每次请求平均读取 10 行 │
│ - 100 万请求/天 = 1000 万行/天 = 3 亿行/月 │
│ │
│ 写入估算: │
│ - 每次写入操作 │
│ - 10 万写入/天 = 300 万行/月 │
│ │
│ 建议: │
│ - 预留 50% 缓冲 │
│ - 监控实际使用情况 │
│ - 根据增长趋势调整 │
│ │
└─────────────────────────────────────────────────────────────┘
数据库配置 #
基本设置 #
bash
# 查看数据库详情
pscale database show my-database
# 查看数据库列表
pscale database list
# 查看特定组织的数据库
pscale database list --org my-org
数据库状态 #
text
┌─────────────────────────────────────────────────────────────┐
│ 数据库状态 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 状态类型: │
│ │
│ creating - 创建中 │
│ ready - 就绪,可使用 │
│ updating - 更新中 │
│ error - 错误状态 │
│ deleting - 删除中 │
│ │
│ 查看状态: │
│ pscale database show my-database │
│ │
│ NAME REGION STATE STORAGE BRANCHES │
│ my-database us-east-1 ready 1.2 GB 3 │
│ │
└─────────────────────────────────────────────────────────────┘
数据库限制 #
text
┌─────────────────────────────────────────────────────────────┐
│ 使用限制 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 连接限制: │
│ ├── Hobby: 100 并发连接 │
│ ├── Scaler: 1000 并发连接 │
│ └── Scaler Pro: 自定义 │
│ │
│ 查询限制: │
│ ├── 查询超时: 60 秒 │
│ ├── 结果集: 10,000 行 │
│ └── 单行大小: 64 KB │
│ │
│ 分支限制: │
│ ├── Hobby: 2 个分支 │
│ ├── Scaler: 5 个分支 │
│ └── Scaler Pro: 无限分支 │
│ │
└─────────────────────────────────────────────────────────────┘
监控数据库 #
性能指标 #
text
┌─────────────────────────────────────────────────────────────┐
│ 监控指标 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 存储使用: │
│ ├── 已用存储空间 │
│ ├── 存储增长趋势 │
│ └── 预计耗尽时间 │
│ │
│ 读写统计: │
│ ├── 每日行读取数 │
│ ├── 每日行写入数 │
│ ├── 读写比例 │
│ └── 峰值时段分析 │
│ │
│ 连接统计: │
│ ├── 活跃连接数 │
│ ├── 连接来源 │
│ └── 连接错误率 │
│ │
│ 查询性能: │
│ ├── 慢查询列表 │
│ ├── 平均查询时间 │
│ └── 查询错误率 │
│ │
└─────────────────────────────────────────────────────────────┘
CLI 监控命令 #
bash
# 查看数据库概览
pscale database show my-database
# 查看使用统计
pscale database list
# 查看分支状态
pscale branch list my-database
# 查看部署请求
pscale deploy-request list my-database
Web 控制台监控 #
在数据库 Overview 页面可以查看:
text
┌─────────────────────────────────────────────────────────────┐
│ Overview 页面 │
├─────────────────────────────────────────────────────────────┤
│ │
│ Storage │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ████████████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │
│ │ 1.2 GB / 5 GB (24%) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Rows read (this month) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ████████████████████████████░░░░░░░░░░░░░░░░░░░░░░ │ │
│ │ 450M / 1B (45%) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Rows written (this month) │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ ████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ │ │
│ │ 3M / 10M (30%) │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘
数据库备份 #
自动备份 #
text
┌─────────────────────────────────────────────────────────────┐
│ 自动备份策略 │
├─────────────────────────────────────────────────────────────┤
│ │
│ PlanetScale 自动进行备份: │
│ │
│ ├── 每日自动备份 │
│ ├── 保留 7 天 │
│ ├── 时间点恢复支持 │
│ └── 跨区域复制(付费计划) │
│ │
│ 备份内容: │
│ ├── Schema 结构 │
│ ├── 数据内容 │
│ └── 分支信息 │
│ │
│ 注意: │
│ - 备份自动进行,无需手动操作 │
│ - 恢复需要联系支持 │
│ - 免费计划保留时间较短 │
│ │
└─────────────────────────────────────────────────────────────┘
手动导出 #
bash
# 导出数据
pscale database dump my-database main --output ./backup
# 导出特定表
pscale shell my-database main
mysql> SELECT * INTO OUTFILE '/tmp/users.csv'
-> FIELDS TERMINATED BY ','
-> FROM users;
删除数据库 #
删除前检查 #
text
┌─────────────────────────────────────────────────────────────┐
│ 删除前检查清单 │
├─────────────────────────────────────────────────────────────┤
│ │
│ □ 确认数据库不再需要 │
│ □ 备份重要数据 │
│ □ 更新应用配置,移除连接字符串 │
│ □ 确认没有活跃连接 │
│ □ 通知团队成员 │
│ │
│ 警告:删除操作不可逆! │
│ │
└─────────────────────────────────────────────────────────────┘
删除操作 #
bash
# 删除数据库
pscale database delete my-database
# 确认提示
# Are you sure you want to delete database "my-database"? [y/N] y
# 强制删除(跳过确认)
pscale database delete my-database --force
常见问题 #
数据库创建失败 #
text
问题:数据库创建卡在 creating 状态
原因:
- 区域资源不足
- 组织配额限制
- 网络问题
解决:
1. 等待几分钟重试
2. 尝试其他区域
3. 检查组织配额
4. 联系支持
连接超时 #
text
问题:无法连接数据库
原因:
- 区域选择不当
- 网络问题
- 密码过期
解决:
1. 检查区域是否正确
2. 测试网络连通性
3. 重新创建密码
4. 使用 CLI 代理连接
存储空间不足 #
text
问题:存储空间即将耗尽
解决:
1. 清理不必要的数据
2. 删除旧的分支
3. 升级到付费计划
4. 优化数据结构
下一步 #
现在你已经掌握了数据库管理的基本操作,接下来学习 分支操作,深入了解 PlanetScale 的核心功能!
最后更新:2026-03-29