MySQL을 사용하여 PHP 응용 프로그램의 세션 데이터를 관리하고 있습니다. 앱을 테스트 할 때 일반적으로 매우 빠르고 반응적입니다. 그러나 무작위 적으로 반응은 몇 초 후에 마침내 끝나기 전에 멈추게됩니다. 내가 이렇게 보이는 세션 쓰기 쿼리에 이르기까지 문제를 좁혀 :MySQL Insert Query가 무작위로 오랜 시간이 걸림
INSERT INTO Session VALUES('lvg0p9peb1vd55tue9nvh460a7', '1275704013', '') ON DUPLICATE KEY UPDATE sessAccess='1275704013',sessData='';
느린 쿼리 로그는이 정보를 가지고 :
는Query_time: 0.524446 Lock_time: 0.000046 Rows_sent: 0 Rows_examined: 0
이 매 10 시간에서 1을 발생합니다. 쿼리는 보통 ~ 0.0044 초 밖에 걸리지 않습니다.
표는 약 60 행의 InnoDB입니다. sessId는 BTREE 인덱스가있는 기본 키입니다.
모든 페이지보기에서 액세스되므로 분명히 허용되는 실행 시간은 아닙니다. 왜 이런 일이 일어나는 걸까요?
업데이트 : 테이블 스키마는 다음과 같습니다 sessId : VARCHAR (32), sessAccess : INT (10), sessData : 텍스트 BTREE 인덱스의 중간에 삽입하면 페이지의 석방을 요구 않습니다
입니다? 귀하의 테이블에 대한 전체 스키마를 제공해주십시오. –
테스트 환경 (프로세서, RAM, 디스크, 디스크의 여유 공간, CPU/RAM/디스크를 놓고 경쟁 할 수있는 상자에서 실행중인 것)을 설명하십시오. 때로는 임의의 성능 문제가 환경 문제입니다. –
응용 프로그램은 약 300MB RAM의 VPS 호스팅 계획에 있습니다. 일반적으로 최소한의 웹 소프트웨어를 실행하는 CentOS 서버입니다. – CrossProduct