교착 상태가 발생하면 지연 실행 시간과 같은 성능 문제가 발생합니까?mysql 저장 프로 시저 - 교착 상태로 인해 성능이 저하됩니까?
답변
교착 상태로 인해 리소스를 통한 충돌로 인해 쿼리가 실행되지 않습니다. 교착 상태를 처리하는 데이터베이스 엔진의 유일한 일반적인 방법은 교착 상태에있는 프로세스 중 하나를 종료하고 가능한 경우 다시 실행하는 것입니다.
예, 엔진이 교착 상태를 감지하고 처리해야하므로 성능 문제가 발생합니다. 일반적으로 가능한 교착 상태를 피하는 것이 좋습니다. 당신이 교착 상태 롤백됩니다 관련된 거래 중 하나를 얻을 때
많은 정보 여기 http://dev.mysql.com/doc/refman/5.0/en/innodb-deadlocks.html
있습니다. 트랜잭션을 롤백하는 것은 서버에 비해 상대적으로 비용이 많이 들고 실제 작업에 소비하는 노력을 소비합니다. 또한 원래 트랜잭션을 다시 수행해야합니다.
그러나 응용 프로그램에 매우 적은 수의 교착 상태가있는 것을 목표로해야합니다. 트랜잭션의 1 %가 교착 상태 인 경우 너무 많을 수 있습니다.
다행스럽게도 InnoDB의 디자이너는 교착 상태가 잠재적 인 성능 문제 였음을 알고 "InnoDB"트랜잭션을 "적은 작업"을 수행하는 트랜잭션으로 롤백하려고했습니다. 트랜잭션이 시작된 이래 적은 작업을 수행 한 경우 롤백됩니다. 따라서 한 트랜잭션이 백만 개의 삽입을 수행하고 다른 트랜잭션이 하나만 완료 한 경우 한 삽입 트랜잭션은 롤백 될 수 있습니다.
InnoDB는 대규모 트랜잭션을 롤백 할 때 효율성이 떨어집니다. 한 시스템에서 나는 트랜잭션이 롤백하는 데 45 분이 걸리는 것을 보았습니다.
일반적으로 말해서 많은 교착 상태가 발생하는 경우 응용 프로그램 디자인 문제로 인한 것일 수 있습니다. 예를 들어 거대한 업데이트 쿼리를 정기적으로 수행하는 경우 데이터베이스가 정규화되지 않았 음을 나타낼 수 있습니다 (예를 들어).
- 1. 분할로 인해 쿼리 성능이 저하됩니까?
- 2. mySQL 저장 프로 시저 오류
- 3. MySQL 저장 프로 시저 포팅?
- 4. 복잡한 MySQL 저장 프로 시저
- 5. MySQL 저장 프로 시저 디버깅
- 6. mysql 저장 프로 시저 편집기
- 7. 렌더링되지 않은 MovieClip 프레임으로 인해 성능이 저하됩니까?
- 8. 쓰기 가능한 페이지로 인해 JIT 성능이 저하됩니까?
- 9. 다른 프로 시저 실행 여부를 평가하는 MySQL 저장 프로 시저
- 10. MySql 저장 프로 시저 : 프로 시저 테이블에서 선택하는 방법?
- 11. 저장 프로 시저
- 12. scala.dbc의 저장 프로 시저
- 13. 저장 프로 시저
- 14. 교착 상태로 인해 인스턴스 크래시가 발생했습니다
- 15. 앱과 위젯의 교착 상태로 인해 ANR이 발생합니까?
- 16. mysql 서버 : 저장 프로 시저 - 언제 저장 프로 시저를 생성합니까?
- 17. mysql 저장 프로 시저 제한 라인/문자
- 18. 매개 변수 문제가있는 mysql 저장 프로 시저
- 19. Mysql 저장 프로 시저 열 유형 참조
- 20. MySQL - 저장 프로 시저 내의 동적 SQL
- 21. VB.NET에서 사용하는 MySQL 저장 프로 시저 만들기
- 22. MySQL을 사용하여 MySQL 저장 프로 시저 만들기
- 23. MySQL 저장 프로 시저 : WHERE 절의 변수?
- 24. [MySQL] : 저장 프로 시저 및 선택 문
- 25. 동적으로 MYSQL 저장 프로 시저/함수 정렬
- 26. Mysql 저장 프로 시저 동적 쿼리
- 27. MySQL 정규화 저장 프로 시저 성능
- 28. mysql 저장 프로 시저 where 절
- 29. Mysql 저장 프로 시저 실행 문제
- 30. MySQL : Views 대 저장 프로 시저
InnoDB는 트랜잭션을 자동으로 재실행하지 않고 응용 프로그램에 오류를 반환합니다. 응용 프로그램 자체를 다시 시도해야합니다. – MarkR