본문 바로가기
etc

[MySQL] 대량의 더미 데이터를 생성하는 로직

by ryuneng 2025. 1. 25.
반응형

새로운 프로젝트를 시작할 때마다 수작업으로 여러 건의 더미 데이터를 생성하는 작업이 번거로웠는데,
강의를 통해 대량의 더미 데이터를 쉽게 생성하는 방법을 알게 되어 정리해본다.
간단한 쿼리만 실행하면 1,000,000건의 데이터도 빠르게 생성할 수 있다!


🧑🏻‍💻 더미 데이터 생성 쿼리 실행

  • 데이터베이스 콘솔창에서 아래와 같은 형식의 쿼리를 작성 후 실행하면 된다.
    해당 로직은 MySQL 8.0 이상에서만 사용 가능하다.
-- 높은 재귀(반복) 횟수를 허용하도록 설정
-- (아래에서 생성할 더미 데이터의 개수와 맞춰서 작성하면 된다.)
SET SESSION cte_max_recursion_depth = 1000000;

-- boards 테이블에 더미 데이터 삽입
INSERT INTO boards (title, content, created_at)
WITH RECURSIVE cte (n) AS
(
    SELECT 1
    UNION ALL
    SELECT n + 1 FROM cte WHERE n < 1000000 -- 생성하고 싶은 더미 데이터의 개수
)
SELECT
    CONCAT('Title', LPAD(n, 7, '0')) AS title, -- 'Title' 다음에 7자리 숫자로 구성된 제목 생성
    CONCAT('Content', LPAD(n, 7, '0')) AS content, -- 'Content' 다음에 7자리 숫자로 구성된 내용 생성
    TIMESTAMP(DATE_SUB(NOW(), INTERVAL FLOOR(RAND() * 3650 + 1) DAY) + INTERVAL FLOOR(RAND() * 86400) SECOND) AS created_at
                                                                                        -- 최근 10년 내의 임의의 날짜와 시간 생성
FROM cte;

-- 1,000,000건의 데이터 잘 생성되었는지 확인
select count(*) from boards;

💡 성공

  • 쿼리 실행 완료 후, 1,000,000건의 데이터가 성공적으로 생성된 것을 확인할 수 있다!



References

 


< 해당 글은 velog에서 이전하며 옮겨온 글로, 가독성이 좋지 않을 수 있는 점 양해 부탁드립니다. >

🔗 velog 버전 보기 : https://velog.io/@ryuneng2/MySQL-대량의-더미-데이터를-생성하는-로직