> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloudthinker.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Tony

> Tony와 함께 SQL 및 NoSQL 플랫폼 전반에 걸쳐 데이터베이스 쿼리를 최적화하고, 성능을 튜닝하며, 데이터를 분석하세요.

Tony는 CloudThinker의 데이터베이스 전문가로, SQL 및 NoSQL 플랫폼 전반에 걸쳐 쿼리 최적화, 성능 튜닝, 백업 전략, 그리고 데이터 분석을 전문으로 합니다.

***

## Tony가 해결하는 문제

데이터베이스 성능은 눈에 띄지 않게 저하됩니다. 성장하는 테이블에 인덱스가 누락된 사실은 P95 지연 시간이 급증하고 엔지니어들이 새벽 2시에 잠에서 깨어날 때까지 보이지 않습니다. 커넥션 풀 고갈은 누군가 데이터베이스를 확인하기 전까지 애플리케이션 버그처럼 보입니다. 느린 쿼리는 하루에 수백 번 실행되면서 데이터베이스 CPU의 80%를 소비하고 있지만, 쿼리 분석을 인프라 비용과 연결하는 시스템이 없어 아무도 모릅니다.

이러한 문제를 진단하고 수정하려면 일반적으로 다음이 필요합니다:

* `pg_stat_statements` 쿼리 또는 MySQL 슬로우 쿼리 로그 활성화
* 실행 계획(EXPLAIN ANALYZE 출력) 읽기 및 해석
* 현재 인덱스와 쿼리 패턴 상호 참조
* PostgreSQL/MySQL 구성 파라미터와 트레이드오프 이해

이는 깊은 전문성이 요구되는 작업입니다. 대부분의 팀에는 전담 DBA가 없어 데이터베이스 성능 문제가 방치되거나 고비용 컨설턴트가 필요합니다.

***

## 다른 도구들의 한계

| 도구                           | 기능                        | 부족한 점                                  |
| ---------------------------- | ------------------------- | -------------------------------------- |
| **AWS Performance Insights** | 데이터베이스 부하 및 쿼리 대기 시간 시각화  | AWS RDS 전용, 해석에 SQL 전문성 필요, 권장사항 없음    |
| **pganalyze**                | PostgreSQL 쿼리 분석 및 인덱스 권장 | PostgreSQL 전용, 대화형 인터페이스 없음, DBA 해석 필요 |
| **Percona Monitoring (PMM)** | 오픈소스 데이터베이스 모니터링          | 복잡한 설정, 기술적 대시보드, AI 분석 없음             |
| **Datadog APM**              | 애플리케이션 + 데이터베이스 추적 상관관계   | 모니터링 전용, 수정 권장사항 없음, 대규모 사용 시 고비용      |
| **New Relic / AppDynamics**  | 데이터베이스를 포함한 풀스택 가시성       | 가시성 도구로, 전문가 해석이 여전히 필요                |

Tony는 모니터링을 넘어섭니다. 실행 계획을 읽고, 스키마 맥락을 이해하며, 생성할 인덱스, 재작성할 쿼리, 변경할 구성을 평이한 언어로 정확하게 알려줍니다.

***

## Tony의 작동 방식

1. **데이터베이스에 읽기 접근으로 연결** — `pg_stat_statements`, MySQL Performance Schema, RDS Performance Insights, Aurora, MongoDB 프로파일러
2. **느린 쿼리 식별** — 실행 시간, 호출 빈도, 리소스 소비를 분석하여 가장 영향이 큰 대상을 자동으로 찾습니다
3. **실행 계획 읽기** — EXPLAIN ANALYZE 출력을 해석하여 테이블 스캔, 인덱스 누락, 조인 비효율성을 파악합니다
4. **정밀한 권장사항 제공** — 실제 P95 사용률을 기반으로 한 구체적인 `CREATE INDEX` 구문, 쿼리 재작성, 구성 변경 사항과 전후 영향 추정치를 생성합니다
5. **트레이드오프 이해** — 새 인덱스의 쓰기 오버헤드, 구성 변경의 메모리 영향, 스키마 변경의 다운타임 요구사항을 고려합니다

***

## 주요 기능

| 영역         | 기능                            |
| ---------- | ----------------------------- |
| **쿼리 최적화** | SQL 분석, 실행 계획, 인덱스 권장, 쿼리 재작성 |
| **성능 튜닝**  | 커넥션 풀링, 구성 최적화, 병목 지점 식별      |
| **데이터 분석** | 사용 패턴, 트렌드 분석, 용량 계획, 메트릭 시각화 |
| **운영**     | 백업/복구, 복제, 유지보수, 재해 복구 계획     |

***

## 지원 플랫폼

| 분류           | 플랫폼                                            |
| ------------ | ---------------------------------------------- |
| **관계형**      | PostgreSQL, MySQL, MariaDB, SQL Server, Oracle |
| **클라우드 관리형** | AWS RDS, Aurora, Azure SQL, Cloud SQL          |
| **NoSQL**    | MongoDB, Redis, DynamoDB, DocumentDB           |
| **분석**       | Redshift, BigQuery, Snowflake                  |

***

## 프롬프트 패턴

### 쿼리 분석

```text theme={null}
# 슬로우 쿼리 조사
@tony analyze slow queries on production PostgreSQL

# 특정 성능 목표
@tony identify queries with execution time >2 seconds on orders database

# 실행 계획 분석
@tony analyze execution plans for the 20 slowest queries

# 쿼리 패턴
@tony find queries that could benefit from caching
```

### 성능 최적화

```text theme={null}
# 인덱스 권장
@tony analyze missing indexes that would improve performance by >10%

# 커넥션 최적화
@tony review connection pooling configuration for high-load scenarios

# 구성 튜닝
@tony optimize MySQL 8.0 configuration for high-throughput OLTP with 10k connections

# 리소스 분석
@tony identify queries consuming >5% of total database CPU
```

### 데이터베이스 상태 확인

```text theme={null}
# 상태 점검
@tony check database health and performance metrics

# 복제 상태
@tony assess replication lag and recommend optimization

# 스토리지 분석
@tony analyze database growth patterns and recommend archiving strategy

# 커넥션 분석
@tony analyze connection usage patterns and identify connection leaks
```

### 백업 및 복구

```text theme={null}
# 백업 검증
@tony verify backup status and recovery procedures for production databases

# DR 계획
@tony create disaster recovery plan with RTO/RPO analysis

# 복구 테스트
@tony recommend backup testing strategy for production databases
```

***

## 도구 사용

| 도구           | Tony 활용 사례                             |
| ------------ | -------------------------------------- |
| `#dashboard` | 쿼리 지연 시간(P50/P95/P99), 커넥션, I/O, 복제 지연 |
| `#report`    | 성능 분석, 최적화 권장사항, 용량 계획                 |
| `#recommend` | 인덱스 변경, 구성 업데이트, 쿼리 재작성                |
| `#alert`     | 느린 쿼리, 커넥션 풀 고갈, 복제 지연                 |
| `#chart`     | 쿼리 트렌드, 리소스 사용률, 성장 패턴                 |

### 도구 활용 예시

```text theme={null}
@tony #dashboard database performance metrics for production cluster
@tony #report query performance analysis with optimization plan
@tony #recommend index optimizations prioritized by impact
@tony #alert when P95 query latency exceeds 500ms
```

***

## 효과적인 프롬프트 작성

**팁: 메트릭을 포함하세요**

```text theme={null}
# 좋은 예
@tony analyze queries with
execution time >2 seconds
running >100 times daily

# 피해야 할 예
@tony make database faster
```

**팁: 플랫폼을 명시하세요**

```text theme={null}
# 좋은 예
@tony optimize MySQL 8.0
for read-heavy workloads
with 10k concurrent connections

# 피해야 할 예
@tony check the database
```

***

## 연결 요구사항

Tony는 성능 메트릭 접근 권한이 있는 데이터베이스 연결이 필요합니다:

| 플랫폼            | 필요한 접근 권한                                 |
| -------------- | ----------------------------------------- |
| **PostgreSQL** | `pg_stat_statements`, 쿼리 로그, 성능 스키마       |
| **MySQL**      | Performance Schema, 슬로우 쿼리 로그, 상태 변수      |
| **RDS/Aurora** | Enhanced Monitoring, Performance Insights |
| **MongoDB**    | 프로파일러, `serverStatus`, 작업 로그              |

***

## 일반적인 워크플로우

### 성능 위기 대응

```text theme={null}
# 1단계: 식별
@tony identify top 10 slowest queries in last hour

# 2단계: 분석
@tony analyze execution plans for problematic queries

# 3단계: 최적화
@tony #recommend index changes and query rewrites

# 4단계: 모니터링
@tony #dashboard real-time query performance
```

### 사전 최적화

```text theme={null}
# 1단계: 기준선 설정
@tony #dashboard current performance metrics

# 2단계: 분석
@tony identify optimization opportunities across all databases

# 3단계: 우선순위 지정
@tony #recommend optimizations ranked by impact and effort

# 4단계: 자동화
@tony #schedule weekly performance review
```

### 용량 계획

```text theme={null}
# 1단계: 성장 분석
@tony analyze database growth patterns over last 6 months

# 2단계: 예측
@tony predict storage and compute needs for next year

# 3단계: 계획
@tony #recommend scaling strategy with cost analysis
```

***

## 다음 단계

<CardGroup cols={2}>
  <Card title="PostgreSQL 연결" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/postgresql.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=8bb2ac033d0a2ccbef51154a76e1e819" href="/ko/guide/connections/postgresql" width="24" height="24" data-path="images/icons/postgresql.svg">
    Tony를 PostgreSQL 데이터베이스에 연결
  </Card>

  <Card title="MySQL 연결" icon="https://mintcdn.com/cloudthinker/aLd-ttc-SCW-aFky/images/icons/mysql.svg?fit=max&auto=format&n=aLd-ttc-SCW-aFky&q=85&s=29b74ea2b3ffacd21682ca898f6a2e43" href="/ko/guide/connections/mysql" width="24" height="24" data-path="images/icons/mysql.svg">
    Tony를 MySQL 데이터베이스에 연결
  </Card>

  <Card title="Deep Response Engine" icon="triangle-exclamation" href="/ko/guide/incident/overview">
    Tony가 데이터베이스 관련 인시던트를 자동으로 조사하는 방식
  </Card>

  <Card title="Anna" icon="users" href="/ko/guide/agents/anna">
    인프라 + 데이터베이스 비용 최적화를 위해 Tony와 [Alex](/ko/guide/agents/alex)를 조율
  </Card>
</CardGroup>
