>  기사  >  데이터 베이스  >  mysql 전역변수와 지역변수에 대한 자세한 설명

mysql 전역변수와 지역변수에 대한 자세한 설명

王林
王林앞으로
2020-01-27 20:39:042639검색

mysql 전역변수와 지역변수에 대한 자세한 설명

보통 서버가 시작되면 각 전역 변수는 기본값으로 초기화되고(명령줄이나 옵션 파일에 지정된 옵션을 통해 이러한 기본값을 변경할 수 있음) 서버도 해당 값을 초기화합니다. 연결된 각 클라이언트는 일련의 세션 변수를 유지합니다. 클라이언트의 세션 변수는 해당 전역 변수의 현재 값을 사용하여 연결 시 초기화됩니다.

예는 다음과 같습니다.

서버가 시작되면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제