Home

(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습

Published in mysql_maria
July 24, 2025
2 min read
(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습

안녕하세요, 코딩하는곰입니다! 오늘은 MySQL/MariaDB에서 CSV 파일로 데이터를 내보내고 가져오는 방법에 대해 깊이 있게 다루어보겠습니다. 데이터 분석가나 개발자라면 데이터베이스와 CSV 파일 간의 변환 작업은 필수적인 스킬인데요, 특히 대용량 데이터를 다룰 때 유용한 SELECT INTO OUTFILE 명령어를 중심으로 실제 사용 시 발생할 수 있는 문제점들과 해결 방법까지 상세히 설명드리겠습니다. 20년 경력에서 얻은 노하우를 공유할 테니 끝까지 읽어보세요!

1. SELECT INTO OUTFILE 기본 사용법

MySQL/MariaDB에서 데이터를 CSV 파일로 내보내는 가장 효율적인 방법은 SELECT INTO OUTFILE 명령어입니다. 기본 문법은 다음과 같습니다.

SELECT [컬럼명]
INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM [테이블명]
WHERE [조건절];

이 명령어의 각 옵션을 자세히 설명드리겠습니다:

  • FIELDS TERMINATED BY: 컬럼 구분자 (기본값: 탭)
  • OPTIONALLY ENCLOSED BY: 문자열 감싸기 문자 (기본값: 없음)
  • LINES TERMINATED BY: 라인 구분자 (기본값: \n) 실제 예제를 통해 확인해보겠습니다. employees 테이블에서 salary가 5000 이상인 데이터만 추출하는 쿼리입니다.
SELECT employee_id, first_name, last_name, salary
INTO OUTFILE '/var/lib/mysql-files/employees_high_salary.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM employees
WHERE salary > 5000;

(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습
(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습


🤖 AI와 머신러닝 개발에 관심이 있다면, (자바 기초) 자바 프로그램의 컴파일과 실행 과정 완벽 이해하기를 참고해보세요.

2. 주의해야 할 파일 권한 문제와 해결방법

SELECT INTO OUTFILE을 사용할 때 가장 많이 발생하는 오류는 파일 쓰기 권한 문제입니다. MySQL 서버는 해당 경로에 쓰기 권한이 있어야 하며, 일반적으로 다음과 같은 제한이 있습니다.

  1. 보안 제한: MySQL은 임의의 경로에 파일 저장을 허용하지 않습니다. secure_file_priv 시스템 변수로 지정된 디렉토리만 사용 가능합니다.

    현재 설정 확인 방법:

    SHOW VARIABLES LIKE 'secure_file_priv';
  2. 권한 오류 발생 시 대처법:

    • MySQL 서버 사용자에게 해당 디렉토리 쓰기 권한 부여
    • secure_file_priv 설정 변경 (my.cnf 파일 수정 필요)
    • 기본 디렉토리 사용: /var/lib/mysql-files/ (리눅스), C:\ProgramData\MySQL\MySQL Server\Uploads\ (윈도우)
  3. 권한 설정 예시 (리눅스):

    sudo chown mysql:mysql /export_data
    sudo chmod 755 /export_data

(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습
(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습


남들과 겹치지 않는 닉네임이 필요할 때는 연관성 높은 키워드 기반 닉네임 생성기를 사용해보세요.

3. 고급 활용: 대용량 데이터 처리와 성능 최적화

대용량 데이터를 CSV로 내보낼 때는 몇 가지 고려사항이 있습니다.

  1. 청크 처리 방식 (100만 건 이상 데이터 시):

    SELECT * INTO OUTFILE '/path/to/file_part1.csv'
    FROM large_table
    WHERE id BETWEEN 1 AND 100000;
    SELECT * INTO OUTFILE '/path/to/file_part2.csv'
    FROM large_table
    WHERE id BETWEEN 100001 AND 200000;
  2. 인코딩 문제 해결:

    SELECT * INTO OUTFILE '/path/to/file.csv'
    CHARACTER SET utf8mb4
    FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    FROM table;
  3. 헤더 추가 방법 (두 단계 처리):

    -- 헤더 생성
    SELECT 'id','name','email'
    UNION ALL
    -- 실제 데이터
    SELECT id, name, email
    INTO OUTFILE '/path/to/file_with_header.csv'
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    FROM users;
  4. 성능 비교표: | 방법 | 10만 건 처리 시간 | 100만 건 처리 시간 | |------|------------------|-------------------| | INTO OUTFILE | 1.2초 | 12.8초 | | 클라이언트 도구 | 3.5초 | 35.4초 | | PHP 스크립트 | 8.1초 | 시간초과 |

(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습
(MySQL/MariaDB) CSV 데이터 Export/Import 완벽 가이드 - SELECT INTO OUTFILE 실습


🔍 참여 가능한 공연, 전시, 대회 정보를 찾고 있다면, 영주 시원(ONE)축제를 참고해보세요.

지금까지 MySQL/MariaDB에서 CSV 파일로 데이터를 내보내는 다양한 방법을 살펴보았습니다. SELECT INTO OUTFILE은 서버 측에서 직접 처리하기 때문에 가장 효율적이지만, 권한 설정 등 주의해야 할 점도 많습니다. 실제 프로젝트에 적용하실 때는 꼭 테스트 환경에서 충분히 검증해 보시길 권장드립니다. 다음 포스팅에서는 이번에 생성한 CSV 파일을 다시 MySQL로 가져오는 LOAD DATA INFILE 명령어에 대해 심층적으로 다루겠습니다. 질문이 있으시면 댓글로 남겨주세요! 코딩하는곰이었습니다. 감사합니다!

💡 건강을 위한 식단에 도움을 줄 수 있는 정보는 바로, 인플핏 데이 레몬버베나 다이어트를 참고해보세요.









최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기
최상의 건강을 위한 영양가득한 식품과 정보! life-plus.co.kr 바로가기



다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기
다채로운 문화축제와 공연 소식을 공유하는 블로그! culturestage.co.kr 바로가기



비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기
비트코인 세계로의 첫걸음! 지금 가입하고 거래 수수료 할인 혜택 받으세요! bitget.com 바로가기




Tags

#developer#coding#mysql_maria

Share

Previous Article
Flask vs Django 파이썬 웹프레임워크 선택 가이드

Table Of Contents

1
1. SELECT INTO OUTFILE 기본 사용법
2
2. 주의해야 할 파일 권한 문제와 해결방법
3
3. 고급 활용: 대용량 데이터 처리와 성능 최적화

Related Posts

MySQL/MariaDB 필수 통계 함수 완벽 가이드 COUNT, SUM, AVG 활용법과 실무 예제
December 31, 2025
3 min