MySQL의 각각의 접속은 독립적인 스레드로 동작합니다. 또한 멀티 스레드를 생성할 수 있습니다. 멀티 스레드를 통하여 동시에 같은 테이블에 여러 쿼리를 처리할 수 있습니다. 모든 스레드에서 인덱스 파일은 공유합니다.

29.4.1 ProcessList

현재 접속하여 동작하는 스레드를 확인할 수 있습니다.

| 콘솔 실습 화면 |

mysql> show processlist;
+----+------+-----------------+------+---------+------+-------+------------------+
| Id | User | Host            | db   | Command | Time | State | Info             |
+----+------+-----------------+------+---------+------+-------+------------------+
| 79 | root | localhost:62222 | jiny | Query   |    0 | init  | show processlist |
| 80 | root | localhost:62401 | jiny | Sleep   | 1168 |       | NULL             |
+----+------+-----------------+------+---------+------+-------+------------------+
2 rows in set (0.01 sec)

스레드 접속 확인은 셸 명령창에서도 확인할 수 있습니다.

| 콘솔 실습 화면 |

C:\Bitnami\wampstack-5.6.30-0\mysql\bin>mysqladmin -u root -p processlist
Enter password: ********
+----+------+-----------------+------+---------+------+-------+------------------+
| Id | User | Host            | db   | Command | Time | State | Info             |
+----+------+-----------------+------+---------+------+-------+------------------+
| 79 | root | localhost:62222 | jiny | Sleep   | 152  |       |                  |
| 85 | root | localhost:63007 |      | Query   | 0    | init  | show processlist |
+----+------+-----------------+------+---------+------+-------+------------------+

29.4.2 접속 해제

KILL 명령은 사용하지 않는 스레드를 강제로 종료할 수 있습니다.

| 콘솔 실습 화면 |

mysql> KILL 80;
Query OK, 0 rows affected (0.00 sec)

mysql> show processlist;
+----+------+-----------------+------+---------+------+-------+------------------+
| Id | User | Host            | db   | Command | Time | State | Info             |
+----+------+-----------------+------+---------+------+-------+------------------+
| 79 | root | localhost:62222 | jiny | Query   |    0 | init  | show processlist |
+----+------+-----------------+------+---------+------+-------+------------------+
1 row in set (0.00 sec)

사용하지 않은 스레드를 정리함으로써 MySQL의 접속 및 성능을 높여 충분한 자원 관리 를 할 수 있습니다.