먼저 콘솔에 접속하기전에 접속할 컨테이너 정보를 알아야 하기 때문에 위와 같이 명령어를 입력해줍니다.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fca9c2189ab1 portainer/portainer-ce "/portainer" 2 days ago Up 2 days 8000/tcp, 9443/tcp, 0.0.0.0:9000->9000/tcp, :::9000->9000/tcp portainer
SELECT UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'DB명'
AND TABLE_NAME = '테이블명';
+---------------------+
| UPDATE_TIME |
+---------------------+
| 2024-03-27 09:39:05 |
+---------------------+
테이블명으로 확인
SELECT UPDATE_TIME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME='테이블명';
+---------------------+
| UPDATE_TIME |
+---------------------+
| 2024-03-27 09:39:05 |
+---------------------+
방법3. 직접 업데이트 시간 관리하기
CREATE TABLE test (
id INT PRIMARY KEY,
name CHAR(4),
update_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP,
KEY (update_time)
);
테스트 테이블 test가 생성하겠습니다.
test에는 id와 name, 업데이트 시간을 관리하는 update_time 컬럼이 있습니다.
INSERT INTO test(id, update_time) VALUES (1, NOW());
SELECT * FROM test;
+----+------+---------------------+
| id | name | update_time |
+----+------+---------------------+
| 1 | NULL | 2024-03-28 09:47:24 |
+----+------+---------------------+
위와같이 데이터를 넣으며 update_time을 관리해줍니다.
UPDATE test SET name = 'test' WHERE id = 1;
SELECT * FROM test;
+----+------+---------------------+
| id | name | update_time |
+----+------+---------------------+
| 1 | test | 2024-03-28 09:50:22 |
+----+------+---------------------+
ERROR 1317 (70100): Query execution was interrupted
에러 환경
Client OS: Windows10
Server OS: Ubuntu 22.04.2 LTS
MySQL: 8.0.30
에러 원인
쿼리 처리시간이 너무 오래걸리거나 서버에 이상이 있어 쿼리를 정상적으로 실행을 할수없을 때 나타나는 에러입니다.
해결 방안
방법1.
MySQL 서버를 재시작합니다. 그리고 해결되었는지 확인합니다.
방법2.
SELECT 를 하거나 INSERT, UPDATE를 할 때 인덱스 사용유무에 따라 실행속도를 향상시킬수 있습니다.
# 인덱스 활성화
ALTER TABLE 테이블명 ENABLE KEYS;
# 인덱스 비활성화
ALTER TABLE 테이블명 DISABLE KEYS;
방법3.
max_allowed_packet는 서버와 클라이언트 사이에 주고받는 패킷의 사이즈를 설정하는 값으로 사이즈를 늘려 속도를 향상시킬 수 있습니다.
# max_allowed_packet 사이즈 확인
SHOW VARIABLES WHERE variable_name = 'max_allowed_packet';
+--------------------+----------+
| Variable_name | Value |
+--------------------+----------+
| max_allowed_packet | 67108864 |
+--------------------+----------+
# max_allowed_packet 사이즈 변경 ex)64Mb
SET GLOBAL max_allowed_packet = 64*1024*1024;
또는 my.ini 파일을 통해서도 변경할 수 있습니다.
마무리
공통적으로 해결할 수 있는 방법을 작성해보았습니다. 이외에도 연산시간이 오래걸리거나 루프가 너무 많아 오래걸리는 쿼리문같은 경우 적절한 수정을 통해 해결하면 좋을 것 같습니다.