Use Cases

SQL 실전 가이드: Claude Code 활용 가이드

sql practical guide: Claude Code 활용. 실용적인 팁과 코드 예시를 포함합니다.

SQL쿼리최적화をClaude Code로 실천하기

데이터베이스の성능問題は多くの프로젝트で発生します。Claude Code를 활용하면 遅い쿼리の原因特定から인덱스설계まで、SQLの최적화を효율적으로進められます。

スロー쿼리の分析

実行計画の読み方

> 다음의쿼리が遅い原因を分析して:
> SELECT u.*, COUNT(o.id) as order_count
> FROM users u
> LEFT JOIN orders o ON u.id = o.user_id
> WHERE u.created_at > '2025-01-01'
> GROUP BY u.id
> ORDER BY order_count DESC
> LIMIT 20;

Claude Code는 実行計画(EXPLAIN ANALYZE)の結果を貼り付けると、ボトルネックを特定して改善案を提示してくれます。

-- 改善後:必要なカラムのみ選択、インデックス活用
SELECT
  u.id,
  u.name,
  u.email,
  COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.created_at > '2025-01-01'
GROUP BY u.id, u.name, u.email
ORDER BY order_count DESC
LIMIT 20;

-- 推奨インデックス
CREATE INDEX idx_users_created_at ON users(created_at);
CREATE INDEX idx_orders_user_id ON orders(user_id);

인덱스설계

複合인덱스の최적화

> 다음의검색条件に最適な인덱스を설계して:
> - status + created_at での範囲검색
> - category + price での필터 + 정렬
-- 等価条件を先、範囲条件を後に配置
CREATE INDEX idx_products_status_created
  ON products(status, created_at DESC);

-- カバリングインデックスで追加のテーブルアクセスを回避
CREATE INDEX idx_products_category_price
  ON products(category, price)
  INCLUDE (name, description);

Claude Code는 「カーディナリティの高いカラムを先にする」「範囲검색カラムは인덱스の末尾にする」といった설계原則も合わせて説明してくれます。

N+1問題の検出と解消

> 이ORMコードにN+1問題がないか확인して:
// N+1問題あり
const users = await prisma.user.findMany();
for (const user of users) {
  const orders = await prisma.order.findMany({
    where: { userId: user.id },
  });
}

// 改善後:includeで一括취득
const users = await prisma.user.findMany({
  include: {
    orders: true,
  },
});

ウィンドウ함수の활용

複雑な집계やランキング쿼리は、ウィンドウ함수를 사용하는ことでサブ쿼리より효율적으로記述할 수 있습니다。

-- 各カテゴリ内での売上ランキング
SELECT
  product_name,
  category,
  revenue,
  RANK() OVER (PARTITION BY category ORDER BY revenue DESC) as rank,
  SUM(revenue) OVER (PARTITION BY category) as category_total
FROM product_sales;

パーティショニング

大量데이터の테이블にはパーティショニングも유효です。Claude Code에「이테이블を月ごとにパーティション分割して」と依頼すると、적절한パーティション戦略を提案してくれます。

정리

Claude Code를 활용하면 SQL쿼리のボトルネック分析から인덱스설계、ORMレベルでの최적화まで一貫して改善할 수 있습니다。데이터베이스마이그레이션Prisma ORM활용도 함께 참고하세요.

SQL성능의 상세 정보는Use The Index, Luke를 참고하세요.

#Claude Code #SQL #database #performance #optimization