CTE (Common Table Expression)
MySQL에서 모든 쿼리가 임시 결과를 생성한다. 이 임시 결과에 이름 붙인 것이 CTE다.
1. cte_max_recursion_depth 설정
대규모 데이터 생성하기에 앞서 최대 재귀 횟수를 지정하는 행의 갯수를 설정한다.
SET SESSION cte_max_recursion_depth = 10000000;
2. 더미 데이터 삽입 쿼리 실행
해당 스크립트를 실행하면 users 테이블에 1,000,000개의 데이터가 자동 생성된다.
INSERT INTO users (name, age)
#1부터 시작해서 n+1씩 증가, n<1000000까지 반복
WITH RECURSIVE cte (n) AS (
SELECT 1
UNION ALL
SELECT n + 1 FROM cte WHERE n < 1000000
)
SELECT
#User0000001, User0000002 이런 형태로 이름 생성
CONCAT('User', LPAD(n, 7, '0')),
#1~1000 랜덤 값
FLOOR(1 + RAND() * 1000)
FROM cte;
JSCODE, MySQL 성능 최적화 입문/실전
'🖥️ Back > MySQL' 카테고리의 다른 글
WHERE문이 사용된 SQL문 튜닝 (0) | 2025.07.01 |
---|---|
실행 계획(EXPLAIN) 활용 (0) | 2025.07.01 |
인덱스 (0) | 2025.06.30 |
SQL 구조 (0) | 2025.06.30 |
Entity 1:1, 1:N, M:N (0) | 2025.06.26 |