defaultMaxTimeMS
정의
defaultMaxTimeMS
버전 8.0에 추가 되었습니다.
mongod
및mongos
모두에 사용할 수 있습니다.개별 읽기 작업이 완료되는 데 걸리는 기본값 시간 제한을 밀리초 단위로 지정합니다. 쿼리 가
maxTimeMS()
옵션을 지정하는 경우 해당 값이defaultMaxTimeMS
값을 재정의합니다.defaultMaxTimeMS
다음 읽기 작업에 적용됩니다.
액세스 제어
클러스터 매개변수를 수정하려면 다음 역할 중 하나를 가진 사용자로 인증 해야 합니다.
구문
배포서버에 defaultMaxTimeMS
를 설정하려면 admin
데이터베이스에서 다음 명령을 실행합니다.
db.adminCommand( { setClusterParameter: { defaultMaxTimeMS: { readOperations: <value> } } } )
defaultMaxTimeMS
의 현재 값을 보려면 admin
데이터베이스 에서 다음 명령을 실행 합니다.
db.adminCommand( { getClusterParameter: "defaultMaxTimeMS" } )
행동
기본값 으로 defaultMaxTimeMS.readOperations
은 0 이며, 기본값 쿼리 시간 제한이 설정하다 있지 않음을 의미합니다. 기본값 쿼리 시간 제한이 없는 경우 쿼리 는 결과를 반환하거나 실패할 때까지 실행됩니다.
쿼리 가 maxTimeMS()
옵션을 지정하는 경우 해당 값이 defaultMaxTimeMS
값을 재정의합니다.
장기 실행 쿼리
배포서버 에서 분석 노드 쿼리와 같은 긴 쿼리를 실행 해야 하는 경우 maxTimeMS()
사용하여 작업 수준에서 해당 쿼리에 대한 시간 제한을 지정해야 합니다. 작업 시간 제한을 지정하지 않으면 해당 쿼리는 defaultMaxTimeMS
시간 제한을 사용하며 필요한 시간 동안 실행 되지 않습니다.
예시
다음 명령은 기본값 쿼리 시간 제한 5000
밀리초를 설정합니다.
db.runCommand( { setClusterParameter: { defaultMaxTimeMS: { readOperations: 5000 } } } )
defaultMaxTimeMS
값을 확인하려면 다음 명령을 실행 합니다.
db.adminCommand( { getClusterParameter: "defaultMaxTimeMS" } )
{ "clusterParameters" : [ { "_id" : "defaultMaxTimeMS", "clusterParameterTime" : Timestamp(1711564868, 17), "readOperations" : NumberLong(5000) } ], "ok" : 1, "$clusterTime" : { "clusterTime" : Timestamp(1712161244, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } }, "operationTime" : Timestamp(1712161244, 1) }
결과
배포서버 에 defaultMaxTimeMS
을(를) 설정하다 한 후 다음 쿼리를 고려하세요.
db.test.find( { name: "Carol" } ) db.test.find( { name: "Carol" } ).maxTimeMS( 8000 )
첫 번째 쿼리 는 5 000 밀리초의 defaultMaxTimeMS
값을 사용합니다.
두 번째 쿼리 는 maxTimeMS()
를 지정하여 defaultMaxTimeMS
을 재정의하고 쿼리 가 8 000 밀리초 후에 시간 초과되도록 합니다.