mysql> show global variables
mysql> show global variables LIKE '연관검색기능%'
- 예시
mysql> show global variables like 'admin_port%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| admin_port | 33062 |
+---------------+-------+
1 row in set (0.01 sec)
MySQL에서 글로벌 변수와 세션(또는 시스템) 변수는 서버 동작을 제어하는 설정 값들이지만, 적용 범위에 있어서 차이가 있습니다.
max_connections 글로벌 변수는 서버가 허용하는 최대 동시 연결 수를 설정합니다. 이 변수를 변경하면 MySQL 서버에 연결할 수 있는 클라이언트 수의 상한이 변경됩니다.SHOW GLOBAL VARIABLES 명령으로 조회하고, SET GLOBAL variable_name = value; 형식으로 설정합니다.sql_mode 세션 변수는 현재 세션의 SQL 모드를 설정합니다. 이를 변경하면 해당 세션에서의 SQL 쿼리 처리 방식이 변경되지만, 다른 세션에는 영향을 미치지 않습니다.SHOW VARIABLES 또는 SHOW SESSION VARIABLES 명령으로 조회하고, SET variable_name = value; 형식으로 설정합니다.글로벌 변수 조회 및 설정 예시:
-- 글로벌 변수 조회
SHOW GLOBAL VARIABLES LIKE 'max_connections';
-- 글로벌 변수 설정 (예: 최대 연결 수 변경)
SET GLOBAL max_connections = 200;
세션 변수 조회 및 설정 예시:
-- 세션 변수 조회
SHOW VARIABLES LIKE 'sql_mode';
-- 세션 변수 설정 (예: SQL 모드 변경)
SET sql_mode = 'STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER';
이러한 차이점은 MySQL 서버의 관리와 최적화에 중요합니다. 글로벌 변수를 변경하면 모든 사용자와 세션에 영향을 미치므로, 시스템의 전반적인 성능과 안정성에 중대한 영향을 줄 수 있습니다. 반면, 세션 변수는 특정 사용자의 연결이나 작업에만 영향을 미쳐서, 개별 세션의 동작을 미세 조정하는 데 유용합니다.
MySQL에서 "정적 변수"와 "동적 변수"는 변수의 설정 변경 가능 여부와 적용 시점에 따라 구분됩니다.
my.cnf (또는 my.ini 등) 설정 파일에서 설정됩니다. 서버를 재시작해야 새로운 값이 적용됩니다.innodb_buffer_pool_size는 InnoDB 버퍼 풀의 크기를 설정하는 정적 변수입니다. 이 값을 변경하려면 설정 파일을 편집한 후 MySQL 서버를 재시작해야 합니다.SHOW VARIABLES 명령을 사용하여 조회할 수 있습니다.SET 명령을 사용하여 실행 중인 MySQL 서버에서 직접 변경할 수 있습니다.max_connections는 서버가 허용하는 최대 동시 연결 수를 결정하는 동적 변수입니다. 이 변수는 서버가 실행 중일 때 변경할 수 있으며, 변경 후 즉시 적용됩니다.SHOW VARIABLES 명령으로 조회하고, SET GLOBAL 또는 SET SESSION 명령으로 설정할 수 있습니다.정적 변수 조회 및 설정 예시:
-- 정적 변수 조회
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
-- 정적 변수 설정 (서버 재시작 필요)
-- my.cnf 파일 편집 필요
innodb_buffer_pool_size = 1G
동적 변수 조회 및 설정 예시:
-- 동적 변수 조회
SHOW VARIABLES LIKE 'max_connections';
-- 동적 변수 설정 (서버 재시작 없이 적용)
SET GLOBAL max_connections = 200;
정적 변수는 주로 서버의 핵심 성능과 관련된 설정에 사용되며, 변경 시 주의가 필요합니다. 동적 변수는 보다 유연하게 서버의 운영을 조절할 수 있게 해주며, 서버의 상태에 따라 적절히 조정할 수 있습니다.