• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

SQL 쿼리문 성능 질문

22.08.06 18:42 작성 조회수 126

0

선생님 sql 쿼리 순서가  join, where 순서라서

where보다 가능하다면 join으로 걸러주는게 성능상 더 좋다고 알고있습니다.

우선 위 생각이 맞는지 궁금하고 

만약 아래 join문에서 모든 컬럼들이 인덱싱 되어 있다고 가정하고 

SELECT COUNT(c.createdAt) AS unReads, c.RoomId AS RoomId FROM $chatTableName c
LEFT JOIN $chatReadersTableName cr ON

// 이렇게 특정한 고정값이 있다면 이것을 앞에 넣는게 성능상 좋을까요?
cr.UserId = {특정한 고정값} AND cr.ChatRoomId = c.RoomId AND cr.ChatCreatedAt = c.createdAt
// 아니면 이렇게 연계키로 매핑먼저 시켜준다음 걸러주는게 성능상 좋을까요?
cr.ChatRoomId = c.RoomId AND cr.ChatCreatedAt = c.createdAt AND cr.UserId = {특정한 고정값}

WHERE cr.ChatCreatedAt IS NULL
GROUP BY c.RoomId;
 

둘의 결과가 똑같은 것 같은데 성능상 뭐가 더 좋을지 조언을 듣고싶어 질문드립니다!

 
 
 

답변 1

답변을 작성해보세요.

1

저걸로 왜 성능 고민을 하시는지 잘 모르겠습니다. 둘 중에 하나가 빨라봐야 얼마나 더 빠를까요?