Docs Menu
Docs Home
/
MongoDBマニュアル
/ / / /

デフォルトMaxTimeMS

項目一覧

  • 定義
  • アクセス制御
  • 構文
  • 動作
  • 長時間実行クエリ
  • 結果
defaultMaxTimeMS

バージョン8.0の新機能

mongodmongosの両方で利用できます。

個々の読み取り操作が完了するためのデフォルトの時間制限をミリ秒単位で指定します。 クエリで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 )

最初のクエリでは、 defaultMaxTimeMSの 値、5000 ミリ秒が使用されます。

2 番目のクエリではmaxTimeMS()を指定します。これによりdefaultMaxTimeMSが上書きされ、クエリは8 、 000ミリ秒後にタイムアウトします。

戻る

changeStreamOptions