MySQL에서 글로벌 변수는 MySQL 서버 전체에서 공유되는 변수를 말합니다. 이러한 변수들은 MySQL의 동작과 설정을 조정하는 데 사용되며, 모든 세션에 적용되어 동일한 값을 공유합니다. 즉, 한 번 설정되면 MySQL 서버가 실행되는 동안 유지되는 값들입니다.
MySQL의 글로벌 변수에는 다양한 종류가 있으며, 주요한 몇 가지 예시를 살펴보겠습니다:
1. **max_connections**: 이 변수는 MySQL 서버가 허용하는 최대 동시 연결 수를 정의합니다. 클라이언트가 MySQL 서버에 접속할 때마다 새로운 세션을 생성하는데, 이 변수는 서버가 동시에 처리할 수 있는 최대 세션 수를 제한합니다.
2. **innodb_buffer_pool_size**: InnoDB 스토리지 엔진에서 사용되는 버퍼 풀의 크기를 정의하는 변수입니다. 버퍼 풀은 데이터와 인덱스를 메모리에 캐시하여 데이터베이스의 읽기 성능을 향상시키는 데 사용됩니다.
3. **query_cache_size**: 이 변수는 쿼리 결과를 캐시하는 데 사용되는 메모리의 크기를 정의합니다. 동일한 쿼리가 여러 번 실행되는 경우, 쿼리 캐시를 통해 이전에 실행된 결과를 반환하여 응답 시간을 줄일 수 있습니다.
4. **wait_timeout**: 클라이언트와 연결된 상태를 유지하는 최대 시간을 정의하는 변수입니다. 일정 시간 동안 클라이언트가 서버와 상호 작용하지 않으면 연결이 종료됩니다.
5. **sql_mode**: 이 변수는 MySQL 서버의 SQL 동작 모드를 설정합니다. 각 모드는 SQL 문법 및 동작에 대한 규칙을 정의합니다.
글로벌 변수는 보통 MySQL 구성 파일 (예: my.cnf 또는 my.ini)에 설정되며, 변경 사항은 MySQL 서버를 재시작하여 적용됩니다. 또는 다음과 같이 MySQL 쿼리를 사용하여 런타임 중에 변경할 수도 있습니다:
-- 글로벌 변수 변경 예시
SET GLOBAL max_connections = 200;
단, 글로벌 변수를 변경할 때에는 주의해야 합니다. 부적절한 설정은 MySQL 서버의 성능이나 안정성에 영향을 미칠 수 있으므로, 변경 사항을 잘 검토하고 테스트하는 것이 중요합니다.
'Database' 카테고리의 다른 글
[AWS] Amazon Aurora의 병렬 쿼리 기능 출시 (0) | 2018.10.29 |
---|---|
[스크랩] DB 복원 후 교착 상태 발생 및 해결방안 (0) | 2017.10.29 |
SQL Agent 실행시간 변경하기 (run_time to datetime) (0) | 2017.08.21 |
[MSSQL] SSIS에서 트랜젝션 처리 (0) | 2017.05.11 |
[MySQL] warning (경고) 메시지를 출력하자 (0) | 2017.02.27 |