지난 며칠 동안 고객의 프로덕션 환경(데이터베이스는 mysql 5.1)에서 이 저장 프로시저의 실행 시간이 30~40분 이상인 것을 살펴보았습니다. 요청은
이 저장 프로시저 구현:
1. 두 테이블의 쿼리(비즈니스 요구로 인해 테이블의 하위 쿼리도 포함됨)가 각각 임시 테이블에 삽입됩니다. 두 테이블의 데이터는 310W+, 120W
2. 중간에 일부 처리가 필요하며 임시 테이블의 데이터 그룹이 다른 임시 테이블에 삽입됩니다. 🎜>3. 마지막으로 임시 테이블의 데이터 그룹이 삽입됩니다. 정식 테이블에 도착하여 140W+ 데이터를 삽입했습니다
앱의 사진
The table 'tmp_item_bu_parter_price' is full인데 데이터 양이 너무 많아서 메모리가 터지는 걸까요? 여섯째, 나도 다른 논리를 따랐지만 모두 같은 논리를 따른다는 것을 알았습니다. 이게 좀 단점이군요. 예전부터 고민을 많이 해서 고객의 설정을 먼저 알아내지 못했어요. 7. 멀티스레딩. insert into ...select... 구문이 저장 프로시저에서 사용되고 where 조건이 인덱싱되지 않으므로 전체 테이블 잠금이 발생합니다. 멀티 스레드 테스트의 결과는 의심할 여지없이 잠금 테이블이며 일부 데이터 실행이 실패합니다. 8. 논리적으로는 전체가 삽입되지 않고 증분으로 삽입되지만 기존 데이터는 계속 업데이트되어야 합니다. 따라서 성능은 거의 동일해야 합니다. 성능은 주로 수백만 개의 데이터를 삽입하여 소모됩니다. 이제 나는 완전히 당황했고 어떻게 대처해야 할지 모르겠습니다. [관련 추천]1.
무료 mysql 온라인 동영상 튜토리얼
3. 데이터베이스 설계에 관한 사항
위 내용은 3일간의 성능 튜닝 동안 겪은 몇 가지 문제를 공유해 보세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!