3.6 KiB
3.6 KiB
title, type, tags, date
| title | type | tags | date | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Database Optimizer Agent Personality | source |
|
2026-05-01 |
Source File
Summary(用中文描述)
- 核心主题:Database Optimizer 是一个专注于数据库性能优化的 Agent 人格定义
- 问题域:Schema 设计、查询优化、索引策略、连接池管理、零停机迁移
- 方法/机制:使用 EXPLAIN ANALYZE 分析查询计划;采用 B-tree/GiST/GIN/部分索引策略;通过 CONCURRENTLY 创建索引避免表锁;使用连接池防止连接泄漏
- 结论/价值:提供可在生产环境直接使用的 SQL 模板和 TypeScript 代码示例,涵盖 PostgreSQL、MySQL、Supabase 和 PlanetScale
Key Claims(用中文描述)
- Database Optimizer 专注于 PostgreSQL 优化和高级特性,通过 EXPLAIN ANALYZE 解释查询计划来识别 Seq Scan(差)、Index Scan(好)、Bitmap Heap Scan(可接受)
- Database Optimizer 采用多种索引策略(B-tree、GiST、GIN、部分索引、复合索引)针对不同查询模式进行性能优化
- Database Optimizer 通过使用 CONCURRENTLY 创建索引来确保生产环境零停机,避免表锁
- Database Optimizer 通过连接池化(PgBouncer、Supabase pooler)防止连接泄漏,支持事务模式和会话模式
- Database Optimizer 通过单次 JOIN 查询替代 N+1 循环查询来消除性能瓶颈,使用 json_agg 聚合嵌套数据
Key Quotes
"Build database architectures that perform well under load, scale gracefully, and never surprise you at 3am." — Database Optimizer 核心使命宣言 "Every query has a plan, every foreign key has an index, every migration is reversible, and every slow query gets optimized." — Database Optimizer 核心原则 "Use CONCURRENTLY for indexes — never lock tables in production." — 安全迁移规则
Key Concepts
- QueryPlanAnalysis:使用 EXPLAIN ANALYZE 分析查询计划,识别 Seq Scan、Index Scan、Bitmap Heap Scan,理解 actual time vs planned time 的差异
- IndexingStrategies:B-tree(等值/范围查询)、GiST(几何/全文搜索)、GIN(JSON/数组)、部分索引(高频过滤条件)、复合索引(多列过滤+排序)
- N1QueryPrevention:通过 JOIN + json_agg 聚合替代循环查询,消除 N+1 问题
- ConnectionPooling:PgBouncer 和 Supabase pooler 防止连接耗尽,支持事务模式和会话模式
- SafeMigrations:CONCURRENTLY 创建索引、使用可逆迁移、避免生产环境表锁
- SchemaDesign:规范化 vs 反规范化的权衡,foreign key 必须加索引
Key Entities
- PostgreSQL:主要支持的数据库引擎,提供 EXPLAIN ANALYZE、部分索引、CONCURRENTLY 等高级特性
- MySQL:支持的数据库之一,语法和特性与 PostgreSQL 有差异
- Supabase:开源 Firebase 替代品,提供内置连接池和实时订阅
- PlanetScale:MySQL 兼容的无服务器数据库,支持分支和非阻塞模式变更
- PgBouncer:轻量级 PostgreSQL 连接池工具,支持事务模式和会话模式
- BIGSERIAL:PostgreSQL 主键类型,等价于 BIGINT + AUTO_INCREMENT
Connections
- engineering-backend-architect ← extends ← engineering-database-optimizer(后端架构师依赖数据库优化专家的设计原则)
- engineering-sre ← depends_on ← engineering-database-optimizer(SRE 需要理解数据库性能调优)
Contradictions
- 无已知冲突内容