2012-04-18 2 views
0

현재 매우 느리게 실행되는 mysql 데이터베이스가 있습니다. 서버에는 여러 데이터베이스가 있으며 다른 모든 데이터베이스는 정상적으로 실행되지만이 데이터베이스는 매우 느리며 아주 간단한 업데이트 (작은 테이블에서 1 행 업데이트) 또는 쿼리 선택을 위해 2-10 초 정도 소요됩니다 (작은 테이블에서 1 행 선택).다른 MySQL 데이터베이스가 매우 느린 경우

제 질문은이 데이터베이스가 너무 느리게 돌아가는 이유에 대해 누구나 생각할 수 있는지 물어 보는 것입니다. 트래픽은 최소화됩니다 (개발 사이트의 데이터베이스 임). 나는 phpMyAdmin이 매우 느리고 종종이 데이터베이스로 타임 아웃되기 때문에 스크립트를 배제했다. 또한 실행중인 프로세스를 검사하여 부작용이 없는지 확인하고 진행중인 프로세스가 없어도 데이터베이스가 너무 느리게 실행됩니다.

여기에서 일어날 수있는 일에 대해 누구나 밝힐 수 있습니다. 필요한 경우 추가 정보를 제공하게되어 매우 기쁩니다.

는 편집 :

UPDATE `Users` SET `last active` = 1334763602 WHERE `ID` = 1 

이 간단한 업데이트 쿼리를 완료하는 데 초 2 사이에 10을 취하고있다 : 코멘트에

또한, 여기에서 느리게 실행되는 쿼리의 예입니다. ID는 기본 키이며이 테이블에는 약 30 개의 레코드가 있습니다.

내 초기의 문제로 SELECT가 느린 것처럼 보이지만 SELECT에 대한 느린 기간을 보았지만 많은 SELECT 문이 현재 실행 속도가 빠르지 만 UPDATE는 여전히 느립니다.

편집 2 :이 InnoDB의 테이블 유형에 연결 될 수 있습니다 나타납니다

더 조사 후. 나는 테이블을 MyISAM으로 변경했으며, InnoDB에서 1.5 초가 걸리는 쿼리는 MyISAM에서 0.0006 초 밖에 걸리지 않았다. 내 질문에 내가 InnoDB 테이블을 조정하는 최선의 방법이 될 것 같아?

+1

느리게 실행되는 쿼리, 테이블 디자인, 일부 쿼리 프로필 ('EXPLAIN'등 사용)과 관련된 특정 정보를 제공해야 특정 응답을 얻을 수 있습니다. –

+1

모든 데이터베이스 스키마는 테이블 및 레코드의 양 측면에서 동일합니까? 테이블에 대해 인덱스가 생성 되었습니까? 테이블을 최적화하여 인덱스 재구성을 시도 했습니까? – Christian

+0

데이터베이스의 크기가 다양하고 속도가 느린 데이터베이스가 가장 큽니다. 비슷하지만 크기가 작은 다른 데이터베이스가 있습니다 (이 개발 데이터베이스의 라이브 버전, 개발 데이터베이스가 추가되었습니다). 대부분의 테이블에는 인덱스가 있지만 (전부는 아닐지라도), 인덱스를 다시 만들지는 않았습니다. – CodePB

답변

0

문제는 데이터베이스 설정과 InnoDB 테이블과 관련이있는 것으로 보입니다. 데이터베이스가 MyISAM을 사용할 때 잘 동작 했으므로이를 조사해 보았습니다. 기본 버퍼 풀 크기가 너무 작아서 메모리 문제가 발생합니다. 기본 버퍼 풀 크기의 값을 올렸으므로 데이터베이스가 훨씬 빠르게 수행됩니다 (더 많은 데이터가 아닌 경우 1000 배 더 빠름).