기타 Lobsters · 2일 전

단 한 줄의 SQL 쿼리로 100만 건짜리 대용량 테이블 만드는 법

핵심 요약
  • 외부 도구 없이 SQL 재귀 쿼리(WITH RECURSIVE)나 generate_series() 함수 하나만으로 100만 건의 테이블을 생성하는 방법이 소개되었습니다.
  • 단순 난수나 1부터 100만까지의 연속 숫자뿐 아니라 무작위 이름과 나이가 포함된 모의 고객 데이터까지 단일 쿼리로 구현할 수 있습니다.
  • SQLite, PostgreSQL, MySQL 등 현대 주요 DBMS에서 즉시 활용할 수 있어 대용량 쿼리 성능 테스트 시 매우 유용합니다.
요약 대용량 데이터 환경에서 쿼리 성능이나 동작을 테스트해보고 싶지만 마땅한 대형 테이블이 없을 때, 외부 스크립트 없이 단 하나의 SQL 쿼리만으로 100만 건의 더미 데이터를 생성하는 유용한 팁이 공유되었습니다. 핵심 원리는 대부분의 현대 RDBMS가 지원하는 재귀 쿼리 구문인 `WITH RECURSIVE`를 활용하는 방식입니다. 이 구문은 SQLite 3.8+, PostgreSQL 8.4+, MySQL 8.0+, MariaDB 10.2+ 등에서 폭넓게 지원되며, 오라클이나 SQL Server 역시 문법적 차이는 있지만 재귀 쿼리를 지원합니다. 가장 단순하게는 `random()` 함수와 재귀를 결합해 100만 개의 무작위 난수가 담긴 테이블을 즉시 생성할 수 있으며, 만약 PostgreSQL처럼 `generate_series()` 함수를 지원하는 환경이라면 재귀 대신 해당 함수를 써서 단 한 줄로 생성할 수도 있습니다. 단순 난수뿐만 아니라 1부터 100만까지 1씩 증가하는 연속 번호(시퀀스) 데이터 역시 재귀 구문(`x + 1`)이나 시퀀스 생성기를 통해 손쉽게 채울 수 있습니다. 더 나아가 현실적인 고객(Customer) 데이터 모의 테스트도 가능합니다. 미리 몇 개의 이름 목록(Ann, Bill, Cindy 등)을 정의해 둔 뒤, 재귀 쿼리 내에서 순차 증가하는 ID, 난수 연산(`random() % 5`)을 통한 이름 테이블 조인 매핑, 그리고 1~80 사이의 무작위 나이를 조합하면 단 1회의 쿼리로 현실감 넘치는 100만 건의 회원 정보 테이블이 단숨에 완성됩니다. 외부 데이터 생성 도구나 파이썬 스크립트를 거치지 않고 DB 콘솔 내에서 즉석으로 대규모 벤치마크 데이터를 만들 때 매우 유용한 테크닉입니다.
Sponsored · 광고