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