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 |