JSCODE Logo
블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] 100만건 샘플 더미 데이터 삽입

JSCODE 시니
JSCODE 시니
2026. 04. 04.
author
JSCODE 시니
category
Spring Batch
createdAt
Feb 7, 2026 01:13 AM
isPublic
isPublic
series
Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
slug
generating-one-million-dummy-data
type
post
updatedAt
Apr 4, 2026 10:00

1. 샘플 데이터 삽입

-- 1. 기존 데이터 깨끗하게 비우기 (중복 방지) TRUNCATE TABLE orders; TRUNCATE TABLE settlement; DELIMITER $$ DROP PROCEDURE IF EXISTS fill_dummy_data$$ CREATE PROCEDURE fill_dummy_data() BEGIN DECLARE i INT DEFAULT 1; -- 속도를 위해 오토커밋 끄고 트랜잭션 시작 SET autocommit = 0; WHILE i <= 1000000 DO INSERT INTO orders (customer_name, store_name, amount, order_date) VALUES ( CONCAT('고객_', i), -- 고객_1, 고객_2 ... CASE FLOOR(1 + RAND() * 5) -- 가게명 랜덤 선택 WHEN 1 THEN '엽기떡볶이' WHEN 2 THEN '교촌치킨' WHEN 3 THEN '피자헛' WHEN 4 THEN '스타벅스' ELSE '김밥천국' END, FLOOR(1000 + RAND() * 50000), -- 1000 ~ 51000원 사이 랜덤 금액 CASE -- 70% 확률로 "7일 전" 데이터 생성 (배치 대상) WHEN RAND() < 0.7 THEN DATE_SUB(CURRENT_DATE, INTERVAL 7 DAY) -- 30% 확률로 "1~10일 전" 랜덤 날짜 생성 (배치 대상 아님) ELSE DATE_SUB(CURRENT_DATE, INTERVAL FLOOR(1 + RAND() * 10) DAY) END ); SET i = i + 1; -- 1만 건마다 커밋 (메모리 부하 방지) IF i % 10000 = 0 THEN COMMIT; END IF; END WHILE; COMMIT; SET autocommit = 1; END$$ DELIMITER ; -- 프로시저 실행 CALL fill_dummy_data(); select count(*) from orders;
notion image
 
author
category
Spring Batch
createdAt
Mar 5, 2026 10:56 PM
isPublic
isPublic
series
Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
slug
type
series-footer
updatedAt
Apr 4, 2026 10:00
📎
이 글은 Spring Batch 입문 강의의 수업 자료 중 일부입니다.