라이브러리
[MYSQL_CONFIG] --external-locking - 외부 프로그램이 MySQL 데이터베이스의 잠금을 조정하도록 설정
MYSQL CONFIG - --external-locking
MySQL의 `--external-locking` 옵션은 MySQL 서버에서 사용되는 잠금 메커니즘을 변경합니다. 기본적으로 MySQL은 내부 잠금을 사용하는데, 이 옵션을 사용하면 MySQL은 외부 잠금을 사용하게 됩니다.
내부 잠금 (Internal Locking)
내부 잠금은 MySQL 서버 내부에서 사용되는 잠금 메커니즘입니다. MySQL 서버는 내부 잠금을 사용하여 테이블이나 행에 대한 잠금을 관리합니다. 내부 잠금은 MySQL 서버가 직접 관리하는 잠금이기 때문에, MySQL 서버가 다운되면 잠금이 해제되지 않습니다.
외부 잠금 (External Locking)
외부 잠금은 MySQL 서버가 외부에서 사용하는 잠금 메커니즘입니다. MySQL 서버는 외부에서 사용하는 잠금을 관리합니다. 외부 잠금은 MySQL 서버가 다운되면 잠금이 해제됩니다.
--external-locking 옵션
`--external-locking` 옵션을 사용하면 MySQL 서버가 외부 잠금을 사용하게 됩니다. 이 옵션을 사용하면 MySQL 서버는 내부 잠금 대신 외부 잠금을 사용하여 테이블이나 행에 대한 잠금을 관리합니다.
예제
예를 들어, MySQL 서버에 다음의 테이블이 존재한다고 가정해 봅시다.
#hostingforum.kr
sql
CREATE TABLE test (
id INT PRIMARY KEY,
name VARCHAR(255)
);
내부 잠금을 사용하는 경우, MySQL 서버는 테이블에 대한 잠금을 다음과 같이 관리합니다.
#hostingforum.kr
sql
mysql> LOCK TABLES test WRITE;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO test (id, name) VALUES (1, 'John');
Query OK, 1 row affected (0.00 sec)
MySQL 서버가 다운되면, 테이블에 대한 잠금이 해제되지 않습니다.
#hostingforum.kr
sql
mysql> SHOW PROCESSLIST;
+----+------+-----------+----+---------+------+---------+----------+--------+-----------------------+
| Id | User | Host | db | Command | Time | State | Info | Rows_sent | Rows_examined |
+----+------+-----------+----+---------+------+---------+----------+--------+-----------------------+
| 1 | root | localhost | test | Query | 0 | Locked | LOCK TABLES test WRITE | 0 | 0 |
+----+------+-----------+----+---------+------+---------+----------+--------+-----------------------+
외부 잠금을 사용하는 경우, MySQL 서버는 테이블에 대한 잠금을 다음과 같이 관리합니다.
#hostingforum.kr
sql
mysql> SET GLOBAL external_locking = 1;
Query OK, 0 rows affected (0.00 sec)
mysql> LOCK TABLES test WRITE;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO test (id, name) VALUES (1, 'John');
Query OK, 1 row affected (0.00 sec)
MySQL 서버가 다운되면, 테이블에 대한 잠금이 해제됩니다.
#hostingforum.kr
sql
mysql> SHOW PROCESSLIST;
Empty set (0.00 sec)
결론
`--external-locking` 옵션을 사용하면 MySQL 서버가 외부 잠금을 사용하여 테이블이나 행에 대한 잠금을 관리합니다. 이 옵션을 사용하면 MySQL 서버가 다운되면 잠금이 해제됩니다. 하지만, 내부 잠금과 비교하여 성능이 좋지 않을 수 있습니다. 따라서, 사용하는 경우에 따라 적절한 옵션을 선택해야 합니다.
댓글목록
등록된 댓글이 없습니다.