반응형
Ant_U
DBA 개미
Ant_U
전체 방문자
오늘
어제
  • 분류 전체보기 (262)
    • AWS (3)
    • C# (1)
    • SQL (236)
      • MYSQL (186)
      • MSSQL (50)
    • 자격증 (20)
      • SQLD (12)
      • SQLP (8)

인기 글

최근 글

250x250
hELLO · Designed By 정상우.
Ant_U

DBA 개미

[MySQL] SET 문법: 변수 할당과 시스템 변수 관리 완벽 이해
SQL/MYSQL

[MySQL] SET 문법: 변수 할당과 시스템 변수 관리 완벽 이해

2025. 6. 25. 18:20
728x90
반응형

 

들어가며

MySQL에서는 다양한 변수를 통해 세션 동작을 제어하고 운영 환경을 유연하게 구성할 수 있습니다. 이 변수들은 SET 명령어를 통해 동적으로 설정할 수 있으며, 특히 튜닝, 세션 제어, 트랜잭션 관리 등에 자주 사용됩니다. 오늘은 MySQL의 SET 문법과 변수 할당 방법을 자세히 살펴보겠습니다.


SET이란 무엇인가?

SET 명령어는 MySQL에서 변수 값을 설정하거나 시스템 파라미터를 동적으로 조정할 때 사용됩니다. 크게 두 가지 용도로 나뉩니다:

  • 사용자 변수(User-defined variable) 할당
  • 시스템 변수(System variable) 설정

사용자 변수 할당

사용자 변수는 현재 세션 내에서만 유효한 임시 변수입니다.

기본 문법

SET @변수명 = 값;

예제

SET @my_counter = 10;
SELECT @my_counter;
  • @ 기호를 변수명 앞에 붙입니다.
  • 사용자 변수는 데이터 타입 선언 없이 사용 가능하며, 세션 종료 시 자동 소멸합니다.

시스템 변수 설정

시스템 변수는 MySQL 서버의 동작을 제어하는 핵심 파라미터입니다. 이 중 일부는 런타임에 조정할 수 있으며, 일부는 서버 재시작이 필요합니다.

기본 문법

SET [GLOBAL | SESSION] 시스템변수 = 값;
  • GLOBAL: 전체 서버 수준에서 적용 (다른 세션에도 적용)
  • SESSION: 현재 세션에만 적용 (기본값)

예제: 세션 변수 변경

SET SESSION sql_mode = 'STRICT_TRANS_TABLES';

예제: 글로벌 변수 변경

SET GLOBAL max_connections = 200;

주의: 글로벌 변수 변경은 영구적이지 않으며, 서버 재시작 시 기본값으로 복원됩니다. 영구 반영을 위해서는 설정 파일(my.cnf) 수정이 필요합니다.


복수 변수 동시 설정

SET 명령어로 여러 변수를 한 번에 설정할 수 있습니다.

예제

SET @counter = 1, @total = 100;
SET SESSION autocommit = 0, sql_mode = 'ANSI';

주요 사용 사례

  • 튜닝: SET GLOBAL innodb_buffer_pool_size = ...
  • 세션 제어: SET autocommit = 0;
  • 디버깅: SET @debug_flag = 1;
  • 권한 없는 사용자의 임시 변수 활용: SET @limit = 100;

마무리 및 실전 팁

MySQL의 SET 명령어는 시스템 튜닝과 세션 관리를 유연하게 만들어주는 필수 도구입니다. 특히 사용자 변수는 간단한 로직 구현과 디버깅에 매우 유용합니다.

실전 팁:

  1. 시스템 변수 변경 시 SHOW VARIABLES LIKE '변수명'; 으로 현재 값을 항상 확인하세요.
  2. 글로벌 변수 변경은 운영 환경 적용 전에 충분히 테스트하세요.
  3. 사용자 변수는 세션 단위로만 유지되므로 장기 데이터 저장에는 적합하지 않습니다.

공식 문서 링크

더 자세한 내용은 MySQL 공식 문서를 참고하세요:

  • SET 문법 공식 문서
728x90
반응형

'SQL > MYSQL' 카테고리의 다른 글

[MySQL] SHOW BINARY LOGS로 바이너리 로그 목록 확인하기  (1) 2025.06.26
[MySQL] SHOW BINARY LOG STATUS로 바이너리 로그 상태 확인하기  (0) 2025.06.26
[MySQL] SET NAMES 사용법: 클라이언트 문자셋과 콜레이션 완벽 제어하기  (0) 2025.06.25
[MySQL] SET CHARACTER SET 사용법: 세션 문자셋 쉽게 변경하기  (0) 2025.06.25
[MySQL] UNINSTALL PLUGIN 사용법: 플러그인 안전하게 제거하기  (0) 2025.06.25
[MySQL] UNINSTALL COMPONENT 사용법: 컴포넌트 제거와 관리 완벽 이해  (0) 2025.06.25
[MySQL] INSTALL PLUGIN 사용법: 플러그인 설치와 관리 완벽 이해  (0) 2025.06.25
[MySQL] INSTALL COMPONENT 문법: 플러그인과 컴포넌트 설치 완벽 이해  (0) 2025.06.25
    'SQL/MYSQL' 카테고리의 다른 글
    • [MySQL] SET NAMES 사용법: 클라이언트 문자셋과 콜레이션 완벽 제어하기
    • [MySQL] SET CHARACTER SET 사용법: 세션 문자셋 쉽게 변경하기
    • [MySQL] UNINSTALL PLUGIN 사용법: 플러그인 안전하게 제거하기
    • [MySQL] UNINSTALL COMPONENT 사용법: 컴포넌트 제거와 관리 완벽 이해
    Ant_U
    Ant_U

    티스토리툴바