pg-promise가있는 Nodejs Express 서버를 사용하고 있습니다. 결과를 반환하는 데 많은 시간이 걸리는 데이터베이스의 쿼리가 있습니다. 이러한 쿼리의 경우 pg-promise 쿼리가 오래 걸리고 서버에서 오류를 반환하면 약속이 실패하는 시간 제한을 3 초로 설정했습니다. 그러나 동일한 (무거운) 쿼리를 사용하여 후속 요청을 보내면 응용 프로그램이 중단되고 새 요청을 처리하는 데 시간이 걸리는 문제가 있습니다. 어떤 오류도 발생시키지 않기 때문에 디버깅하기가 어렵습니다. 노드 응용 프로그램이 멈추는 이유는 무엇이 될지 궁금합니다.무거운 요청에 Nodejs 응용 프로그램이 응답하지 않습니다.
0
A
답변
0
누군가가 처음부터 너무 오래 걸리는 쿼리 실행에 관한 질문을 제기 할 때마다 항상 데이터베이스 서비스 개발 및 구현에 관한 기본 지식의 오해를 지적합니다.
그 문제 일반적으로 다음과 같은 문제에서 루트 :
- 나쁜 데이터베이스 설계, 또는 필수 성능 고려 사항의 부족
- 나쁜 쿼리 실행 계획, 즉 매우 비효율적 인 쿼리 로직의
- 나쁜 사용의 사용 연결 풀은 데이터베이스 연결, 즉 위의
간단한 문제 설명과 함께 가능한 많은 문제 풀이를 시도하고 코드 예제가 없으면 사용 가능한 답을 얻지 못할 것입니다. 너무 광범위하고 데이터베이스 서비스 작성과 관련하여 너무 많은 주제를 다루어야합니다.
+0
동의합니다. 그냥 주위에 빠른 해킹 싶었어요. –
큰 프로젝트에 javascript를 사용하지 마십시오 !!!! –
@HaykManasyan 큰 프로젝트가 아닙니다. db에 많은 쿼리를 가져 오는 큰 쿼리 일뿐입니다. –
여러분의 코드를 보지 않고도 사람들이 여러분을 도울 수 있는지 의심 스럽습니다. long query 때문에 node.js가 "hang"할 이유는 없습니다. 사실, 나는 그것이 정말로 "교수형에 처하는"것을 의미하는지조차 모른다. 시간이 많이 걸리는 데이터베이스 쿼리를 수행하는 중 여러 번 작업을 시도 할 때로드가 너무 많으면 문제는 데이터베이스 또는 데이터베이스를 사용하는 방법 중 하나 일 가능성이 높습니다. js 문제. 더 빠른 쿼리로 목표를 달성 할 수 있도록 데이터를 재구성하거나 수행하려는 것을 다시 생각해야합니다. – jfriend00