회사/DB

[DB] Index와 Column, 비교연산자

daykim 2024. 12. 16. 16:45

Column

  • Mybatis에서 WHERE절을 작성할 때, COLUMN_A = #{VAR_A}를 작성하는데
    IFNULL(COLUMN_A, 'A') = #{VAR_A}라고 작성하는 경우가 있을 것이다.
  • 이처럼 조건식에서 왼쪽 컬럼의 값을 수정할 경우, 이 컬럼이 만약 INDEX에 설정된 컬럼이라면 INDEX를 타지 않게 된다.
  • 인덱스를 타지 않는다면 쿼리 속도에 영향을 미치겠죠?
  • 쿼리를 작성할 때, 항상 PK와 인덱스에 해당하는 컬럼인지를 고려해서 작성하자.

 

비교연산자

  • 비교연산자를 사용할 땐, DATA TYPE을 명시적으로 맞춰주다.
  • 만약, 비교하는 DATA TYPE이 다르다면, 어떤 컬럼의 TYPE을 바꿔서 맞출 지 알 수 없다.
  • 무조건 왼쪽과 오른쪽 중 한쪽으로 맞추는 것이 아니기 때문이다.
  • 그렇다면 의도했던 결과가 나오지 않을 수 있다.
  • 최악의 경우 INDEX를 타지 않는다.

'회사 > DB' 카테고리의 다른 글

[MSSQL] 조회 속도 개선  (0) 2025.02.21
[MSSQL] CROSS APPLY, OUTER APPLY  (0) 2025.02.04
[DB / MSSQL] / SELECT - INTO  (0) 2024.11.06
[DB / MSSQL] LOB (Large Object / 대형 오브젝트)  (0) 2024.10.29
[DB / MSSQL] 날짜조회 BETWEEN  (1) 2024.10.28