MySQL 서버에 현재 열려 있는 활성 연결 또는 전체 연결 수를 확인하려면 Threads_connected 상태 변수를 사용하면 됩니다. 이 변수는 현재 열려 있는 연결(스레드)의 개수를 알려줍니다.
Threads_connected 변수로 연결 수 확인하기
다음 쿼리를 실행하면 현재 연결된 스레드 수를 조회할 수 있습니다.
mysql> show status where `variable_name` = 'Threads_connected';
실행 결과는 다음과 같습니다.
+-------------------+-------+ | Variable_name | Value | +-------------------+-------+ | Threads_connected | 1 | +-------------------+-------+ 1 row in set (0.06 sec)
SHOW PROCESSLIST로 상세 연결 정보 확인하기
단순히 연결 수뿐만 아니라 각 연결의 상세 정보까지 확인하고 싶다면 show processlist 명령어를 사용할 수 있습니다. 이 명령은 현재 접속 중인 사용자, 호스트, 실행 중인 쿼리, 대기 시간 등을 함께 보여주므로 디버깅이나 성능 분석에 유용합니다.
mysql> show processlist;
실행 결과는 다음과 같습니다.
+----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+ | 4 | event_scheduler | localhost | NULL | Daemon | 349012 | Waiting on empty queue | NULL | | 11 | root | localhost:54746 | business | Query | 1 | starting | show processlist | +----+-----------------+-----------------+----------+---------+--------+------------------------+------------------+ 2 rows in set (0.31 sec)
위 결과에서 각 컬럼의 의미는 다음과 같습니다.
- Id: 연결(스레드)의 고유 식별자
- User: 해당 연결을 생성한 MySQL 계정
- Host: 클라이언트가 접속한 호스트와 포트
- db: 현재 선택된 데이터베이스 (없으면 NULL)
- Command: 현재 실행 중인 명령 유형 (Query, Daemon, Sleep 등)
- Time: 현재 상태로 유지된 시간(초)
- State: 스레드의 현재 상태
- Info: 실행 중인 SQL 문 (없으면 NULL)
참고로 show full processlist;를 사용하면 Info 컬럼의 쿼리가 잘리지 않고 전체 내용이 표시되므로, 긴 쿼리를 확인할 때 더욱 유용합니다.