Optimumkan transaksi SQL dalam API
P粉343408929
2023-08-18 13:24:59
<p>Saya ada temu duga kerja baru-baru ini dan saya mendapat sedikit kerja rumah. Kemudian saya menerima maklum balas bahawa saya mempunyai gabungan pertanyaan dan transaksi yang tidak perlu dalam titik akhir kemas kini saya. </p>
<pre class="brush:php;toolbar:false;">export const update = async (req: Request, res: Response, next: NextFunction) =>
cuba {
const reportId = parseInt(req.params.id)
const { nama, umur, maklumat } = req.body
const report = tunggu ReportModel.findOne({
di mana: {
id: reportId
}
})
jika (!laporan) kembali seterusnya(EntityNotExistError baharu("Laporan tidak wujud"))
tunggu ReportModel.update({
nama,
umur,
info
}, {
di mana: {
id: reportId
}
})
const _report = tunggu ReportModel.findOne({
di mana: {
id: reportId
}
})
kembalikan res.json({
mesej: "Laporan berjaya disunting",
laporan: _laporan
})
} tangkap (ralat) {
kembali seterusnya(ralat)
}
}</pre>
<p>Seperti yang anda lihat, pertanyaan pertama menyemak sama ada entiti itu wujud, kemudian saya melakukan kemas kini pada entiti dan pertanyaan terakhir mengembalikan entiti yang dikemas kini.
Adakah terdapat beberapa cara untuk mengoptimumkan komunikasi dengan pangkalan data? </p>
Kod anda melibatkan tiga interaksi berbeza dengan pangkalan data untuk satu operasi kemas kini:
ReportModel.findOne()
Kemas kini Entiti |ReportModel.update()
Mengurangkan pertanyaan pangkalan data menyelesaikan tugas dan meningkatkan prestasi.ReportModel.findOne()