>  Q&A  >  본문

API에서 SQL 트랜잭션 최적화

<p>최근에 취업 면접을 봤는데 약간의 숙제가 생겼습니다. 그런 다음 업데이트 엔드포인트에 불필요한 쿼리와 트랜잭션 조합이 있다는 피드백을 받았습니다. </p> <pre class="brush:php;toolbar:false;">export const update = async (req: 요청, res: 응답, next: NextFunction) => 노력하다 { const reportId = parsInt(req.params.id) const { 이름, 나이, 정보 } = req.body const 보고서 = ReportModel.findOne({ 어디: { id: 보고서 ID } }) if (!report) return next(new EntityNotExistError("보고서가 존재하지 않습니다")) ReportModel.update({ 이름, 나이, 정보 }, { 어디: { id: 보고서 ID } }) const _report = ReportModel.findOne({ 어디: { id: 보고서 ID } }) res.json({ 메시지: "보고서가 성공적으로 편집되었습니다.", 보고: _report }) } 잡기(오류) { 다음 반환(오류) } }</pre> <p>보시다시피 첫 번째 쿼리에서는 항목이 존재하는지 확인한 다음 해당 항목에 대해 업데이트를 수행하고 마지막 쿼리에서는 업데이트된 항목을 반환합니다. 데이터베이스와의 통신을 최적화할 수 있는 방법이 있습니까? </p>
P粉343408929P粉343408929407일 전426

모든 응답(1)나는 대답할 것이다

  • P粉201448898

    P粉2014488982023-08-19 10:18:35

    귀하의 코드에는 단일 업데이트 작업을 위해 데이터베이스와의 세 가지 상호 작용이 포함됩니다.

    1. 엔티티가 있는지 확인하세요. 코드: ReportModel.findOne()
    2. 엔티티 코드 업데이트: ReportModel.update()
    3. 응답으로 반환할 업데이트된 엔터티 가져오기: ReportModel.findOne()

    데이터베이스 쿼리를 줄이면 작업이 완료되고 성능이 향상됩니다.

    **귀하의 고정 코드:**

    으아악

    회신하다
    0
  • 취소회신하다