API での SQL トランザクションの最適化
<p>最近就職面接があり、少し宿題をもらいました。その後、更新エンドポイントにクエリとトランザクションの不必要な組み合わせがあるというフィードバックを受け取りました。 </p>
<pre class="brush:php;toolbar:false;">export const update = async (req: リクエスト、res: レスポンス、next: NextFunction) => {
試す {
const reportId = parseInt(req.params.id)
const {名前、年齢、情報} = req.body
const report = await ReportModel.findOne({
どこ: {
id: レポートID
}
})
if (!report) return next(new EntityNotExistError("レポートが存在しません"))
ReportModel.update を待ちます({
名前、
年、
情報
}、{
どこ: {
id: レポートID
}
})
const _report = await ReportModel.findOne({
どこ: {
id: レポートID
}
})
res.json({
メッセージ: 「レポートは正常に編集されました」、
レポート: _レポート
})
} キャッチ (エラー) {
次へ戻る(エラー)
}
}</pre>
<p>ご覧のとおり、最初のクエリはエンティティが存在するかどうかを確認し、次にエンティティの更新を実行し、最後のクエリは更新されたエンティティを返します。
データベースとの通信を最適化する方法はありますか? </p>