Database

数据库脚本与操作规范。脚本放在 db_scripts 目录,遵循查询优化、事务、安全等实践。

mijunri Updated

File contents

数据库 Skill

处理数据库相关操作时,脚本统一放在 db_scripts/ 目录,并遵循以下实践。

脚本位置

  • 所有数据库脚本(迁移、初始化、修复、查询等)置于 db_scripts/
  • 可按子目录组织,如 db_scripts/migrations/db_scripts/init/

命名规范

  • 格式:YYYYMMDD_功能描述.扩展名,日期开头,下划线后接功能
  • 示例:20250213_add_user_table.sql20250213_fix_order_status.sql

查询优化

  1. 避免 N+1 - 使用 JOIN、批量查询或预加载(eager load)
  2. 索引 - 为常查字段、WHERE/JOIN 条件建立合适索引
  3. 分页 - 大数据集使用 limit/offset 或游标分页
  4. 避免 SELECT * - 只选取需要的字段

事务与一致性

  • 多步写操作放在事务中
  • 注意隔离级别和死锁
  • 大事务考虑拆分为小批次

安全

  • 参数化查询 - 始终使用预处理/占位符,禁止拼接 SQL
  • 敏感数据加密存储
  • 连接串、凭据从 .envdev.env 读取,不入库、不硬编码

迁移脚本

  • 可逆的迁移脚本
  • 大表变更考虑在线迁移、分批执行
  • 先加新结构,再迁数据,最后删旧结构

mijunri/claude-skill/tree/main/.claude/skills/database commit c2d980ffe8

Frequently asked questions

npx skillmds@latest add mijunri/database