보통 서버가 시작되면 각 전역 변수는 기본값으로 초기화되고(명령줄이나 옵션 파일에 지정된 옵션을 통해 이러한 기본값을 변경할 수 있음) 서버도 해당 값을 초기화합니다. 연결된 각 클라이언트는 일련의 세션 변수를 유지합니다. 클라이언트의 세션 변수는 해당 전역 변수의 현재 값을 사용하여 연결 시 초기화됩니다.
예는 다음과 같습니다.
서버가 시작되면 GLOBAL 범위의 default_storage_engine
라는 시스템 변수가 초기화됩니다. 이후 클라이언트가 서버에 연결할 때마다 서버는 클라이언트에 별도의 이름을 할당합니다. SESSION 범위의 default_storage_engine 시스템 변수입니다. SESSION 범위의 시스템 변수 값은 현재 GLOBAL 범위의 동일한 이름의 시스템 변수 값에 따라 초기화됩니다.
(무료 학습 비디오 튜토리얼 추천: mysql 비디오 튜토리얼)
분명히 시작 옵션을 통해 설정된 시스템 변수의 범위는 GLOBAL이며, 이는 시스템이 시작될 때 아직 연결된 클라이언트 프로그램이 없기 때문에 모든 클라이언트에 유효합니다. . 시스템 변수의 GLOBAL 및 SESSION 범위를 이해한 후 서버 프로그램 실행 중 클라이언트 프로그램을 통해 시스템 변수를 설정하는 구문을 살펴보겠습니다.
SET [GLOBAL|SESSION] 系统变量名 = 值;
또는 다음과 같이 작성합니다.
SET [@@(GLOBAL|SESSION).]var_name = XXX;
예를 들어, 우리는 서버 실행 중에 시스템 변수를 설정하려면 GLOBAL 범위의 시스템 변수 default_storage_engine 값을 MyISAM으로 변경하십시오. 이는 서버에 연결된 모든 새 클라이언트가 MyISAM을 기본 스토리지 엔진으로 사용하도록 하려면, 그런 다음 아래 두 문 중 하나를 선택하여 설정할 수 있습니다. :
문 1:
SET GLOBAL default_storage_engine = MyISAM;
문 2:
SET @@GLOBAL.default_storage_engine = MyISAM;
이 클라이언트에만 적용하려면 다음 세 문 중 하나를 선택할 수도 있습니다. 설정하려면:
문 1:
SET SESSION default_storage_engine = MyISAM;
문 2:
SET @@SESSION.default_storage_engine = MyISAM;
문 3:
SET default_storage_engine = MyISAM;
위의 문 3에서도 볼 수 있듯이 시스템 변수를 설정하는 문에서 범위가 생략되면 기본값이 범위는 SESSION입니다. 즉, SET 시스템 변수명 = 값과 SET SESSION 시스템 변수명 = 값은 동일합니다.
다른 범위로 시스템 변수 보기
시스템 변수는 다른 범위를 가지므로 SHOW VARIABLES 문은 시스템 변수의 어떤 범위를 확인합니까?
답변: 기본적으로 SESSION 범위의 시스템 변수가 표시됩니다.
물론 다음과 같이 시스템 변수 보기 명령문에서 확인하려는 범위의 시스템 변수를 추가할 수도 있습니다.
SHOW [GLOBAL|SESSION] VARIABLES [LIKE 匹配的模式];
추천 관련 기사 튜토리얼: mysql 튜토리얼
위 내용은 mysql 전역변수와 지역변수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!