跳转到内容

optimize - 优化数据库

optimize 命令扫描和清理数据库中的孤立资源、损坏的文件引用和不可访问的远程链接,提高数据库质量。

Terminal window
hyc optimize [--online]
参数说明可选
--online检测远程资源的在线可用性

指在数据库中存在但未被任何文章引用的资源:

检测条件:

  • 在 Asset 表中存在
  • 没有 PostAsset 关联(未被任何文章引用)
  • 或本地文件在文件系统中不存在

资源在数据库中注册但文件已被删除:

Terminal window
# 数据库记录:
# - @/assets/image.jpg
# 但实际文件已删除
# 系统报告为「缺失文件」

使用 HTTP HEAD 请求检测远程资源可用性:

Terminal window
hyc optimize --online
# 检测所有远程资源的 HTTP 状态
# - 200 OK: 资源可用
# - 404 Not Found: 链接已失效
# - 其他: 无法访问

使用 --online 会发送 HTTP 请求,速度较慢(10 个并发)。对于大量远程资源的项目,可能需要几秒钟。

Terminal window
hyc optimize
Terminal window
hyc optimize --online

当发现可清理的资源时,系统会询问您的确认:

⚠️ 发现可清理的资源:
孤立资源:
1. @/assets/temp-image.jpg
2. @/assets/unused-icon.png
缺失文件:
3. @/content/posts/old/image.jpg
是否删除这些资源? (y/n)

输入 y 确认删除,或 n 取消。

Terminal window
# 直接在文件系统中删除
@/assets/image.jpg 被删除
# 重新运行优化,清理数据库记录
hyc optimize
# 删除孤立的数据库条目
Terminal window
# 仅标记为不可用,不删除
# 您可以:
# 1. 更新链接为新的 URL
# 2. 或从文章中移除引用
# 3. 然后重新运行 optimize
# 手动编辑文章移除失效链接
hyc edit "article"
# 删除 ![](https://failed-url/image.jpg)
# 重新扫描
hyc optimize --online

优化操作会删除文件引用

  • 确认无需这些资源后再删除
  • 建议事先运行 hyc backup 创建备份
  • 删除操作通常可以后悔(手动恢复备份)
Terminal window
# 所有引用已被删除的文章的资源
# 仍保留在数据库中
hyc optimize
# 系统将检测并清理这些资源
Terminal window
hyc optimize --online
# 检测到特定 CDN 已失效
# 您可以选择:
# 1. 删除引用
# 2. 更换为新的 CDN URL
Terminal window
# 备份前清理孤立资源可减小备份大小
hyc optimize
# 验证结果
hyc stats
# 创建优化后的备份
hyc backup
  • 使用 list 查看被标记为孤立的资源详情
  • 使用 backup 在优化前创建备份
  • 使用 stats 查看优化前后的数据对比
津 ICP 备2022001375 号
津公网安备 12011402001353 号