Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 시스템 변수 vs 로컬 변수: 핵심 차이점 완벽 정리

MySQL에서 로컬 변수(지역 변수)는 특정 문장 집합 또는 하나의 블록 안에서만 유효한 범위(scope)를 가집니다. 해당 문장 집합이나 블록의 실행이 끝나면 로컬 변수는 자동으로 범위를 벗어나 더 이상 사용할 수 없습니다.

로컬 변수란?

로컬 변수는 주로 저장 프로시저(stored procedure)함수(function) 내부에서 사용되며, 반드시 DECLARE 키워드로 선언해야 합니다.

로컬 변수를 선언하는 기본 문법은 다음과 같습니다.

DECLARE yourVariableName dataType;

예를 들어 다음과 같이 선언할 수 있습니다.

DECLARE total INT DEFAULT 0;

시스템(전역) 변수란?

전역 변수 또는 시스템 변수는 서버를 재시작하기 전까지 모든 연결에 걸쳐 유효합니다. 이러한 변수는 GLOBAL 키워드를 사용하여 설정하며, 문법은 다음과 같습니다.

SET GLOBAL max_connections=value;
OR
SET @@global.max_connections=value;

시스템 변수 조회 예시

서버의 포트 번호를 확인하고 싶다면 SELECT 문으로 @@port 시스템 변수를 조회하면 됩니다. 쿼리는 다음과 같습니다.

mysql> select @@port;

출력 결과

실행 결과는 아래와 같습니다.

+--------+
| @@port |
+--------+
| 3306   |
+--------+
1 row in set (0.00 sec)

핵심 차이점 요약

구분로컬 변수시스템(전역) 변수
유효 범위선언된 블록 또는 프로시저/함수 내부모든 연결, 서버 재시작까지 유지
선언/설정 방법DECLARE 키워드SET GLOBAL 또는 @@global
주요 사용처저장 프로시저, 함수 등 프로그램 로직서버 설정값 관리 (예: max_connections, port)