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 명령어는 시스템 튜닝과 세션 관리를 유연하게 만들어주는 필수 도구입니다. 특히 사용자 변수는 간단한 로직 구현과 디버깅에 매우 유용합니다.
실전 팁:
- 시스템 변수 변경 시 SHOW VARIABLES LIKE '변수명'; 으로 현재 값을 항상 확인하세요.
- 글로벌 변수 변경은 운영 환경 적용 전에 충분히 테스트하세요.
- 사용자 변수는 세션 단위로만 유지되므로 장기 데이터 저장에는 적합하지 않습니다.
공식 문서 링크
더 자세한 내용은 MySQL 공식 문서를 참고하세요:
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 |