2012-11-02 10 views
5

간단한 업데이트 쿼리에 문제가 있습니다. 내 mysql-slow-query.log 테이블에 항상 나타나는 것은 큰 것이 아니며 단지 3021 rows 만 포함하고 있습니다.MySQL의 간단한 UPDATE 쿼리가 오래 걸린다

쿼리 보이는 같은 :

UPDATE 'address' 
SET 'user' = 1013 
WHERE 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

Query_time : 2.664413 Lock_time : 0.000043 Rows_sent : 0 Rows_examined : 1

내가 함께이 쿼리를 examinate 때

select 'user' = 1013 
from 'address' 
where 'id_adress' = '1' 
    AND 'date' = '2012-06-04' 

그러면 매우 빠르게 보입니다. 1 row in set (0.00 sec)

왜이 간단한 업데이트 쿼리에 많은 시간이 걸리는가? 어떻게 고칠 수 있습니까?

+0

테이블에 인덱스를 설정 했습니까? 인덱스가 SELECT 쿼리를 가속화하더라도 쿼리의 업데이트 속도에 부정적인 영향을 줄 수 있습니다. – Ren

+0

@Ren이 테이블에는 색인이 없으며 ID의 기본 키는 1 개뿐입니다. – stefek143

+0

이 쿼리는 작은 따옴표로 인해 거의 의미가 없으므로 일부 클라이언트 언어로 생성하는 것으로 가정하고 이것이 실제로 실행되고 있다고 생각하는 SQL 코드입니다. 내 조언은 두 번 확인하는 것입니다 : 1) 생성 된 SQL 코드는 무엇입니까 2) SQL은 외부에서 실행할 때 수행합니다 (예 : 좋아하는 MySQL 클라이언트에서). –

답변

1

먼저 테이블이 손상되지 않았 으면
을 확인한 다음 테이블을 복구하십시오.

두 번째 where 절에 사용 된 두 개의 필드를 인덱싱하려고 시도합니다.

관련 문제