2017-12-06 24 views
0

5 개의 간단한 필드가있는 테이블이 있습니다. 테이블의 총 행은 250입니다.MySQL 5.7 Innodb 쿼리가 매우 느리게 임의로 삭제됩니다.

하나의 DELETE 쿼리로 PHPmyAdmin을 사용하면 0.05 초 안에 처리됩니다. (항상).

문제는 내 PHP 응용 프로그램 (PDO 연결)이 다른 쿼리와이 쿼리 사이의 동일한 쿼리를 처리하는 속도가 매우 느리다는 것입니다 (cca 10 초). 그리고 5 행 (cca 1 초) 테이블에 대한 또 다른 SELECT 쿼리. 때때로 일어난 일입니다! 다른 쿼리 (cca 100)는 일반적인 시간 응답에서 항상 정상입니다.

어떤 문제가 있거나 문제를 찾는 방법은 무엇입니까?

테이블 :

CREATE TABLE `list_ip` (
`id` INT(11) NOT NULL AUTO_INCREMENT, 
`type` CHAR(20) NOT NULL DEFAULT '', 
`address` CHAR(50) NOT NULL DEFAULT '', 
`description` VARCHAR(50) NOT NULL DEFAULT '', 
`datetime` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00', 
PRIMARY KEY (`id`), 
INDEX `address` (`address`), 
INDEX `type` (`type`), 
INDEX `datetime` (`datetime`)) COLLATE='utf8_general_ci' ENGINE=InnoDB; 

쿼리 : 테이블은 250 행이 전에 말했듯이

DELETE FROM list_ip WHERE address='1.2.3.4' AND type='INT' AND datetime<='2017-12-06 08:04:30'; 

. 테이블의 크기는 96Kib입니다. 빈 테이블과 느린 테이블도 테스트했습니다.

+1

cca는 무엇을 의미합니까? – bassxzero

+0

@bassxzero 같은 것을 물어 봤습니다. 나는 대략 추측하고있다? –

+1

cca = * circa * or * about. * –

답변

0

EXPLAIN에서 쿼리를 래핑하고 인덱스를 사용하지 않고 순차 선택을 실행하는지 확인하십시오. EXPLAIN은 데이터 모델 문제 (불량/누락 된 인덱스가 하나의 모델 문제 일 수 있음)를 결정하는 데있어 첫 번째 중단 점이됩니다.

은에 대하여 설명합니다 : 내가 권하고 싶습니다 https://dev.mysql.com/doc/refman/5.7/en/explain.html

또 다른 도구는 'mytop을'을 실행하고 늦추지 때 그 시간 동안 서버 활동/부하에서 찾고 있습니다. http://jeremy.zawodny.com/mysql/mytop/

+1

느린 쿼리 로깅을 설정하기위한 제안을 추가 할 수도 있습니다 – frz3993

+0

천천히 실행되는 것을 알고 있기 때문에 큰 도움이 될지 모르겠지만, 일반적으로 좋은 습관, 특히 지연/늪지. – DDeMartini

+1

그냥 문제가 응용 프로그램이나 네트워크에 의해 발생하지 db에 상주하는지 확인하십시오 .... – frz3993