본문 바로가기
IT/DBMS 공통

MySQL 속도 개선 TIP

by 최고영회 2020. 9. 24.
728x90
반응형
SMALL

1. WHERE 절에서 사용하는 컬럼은 index 를 주자.

- 모두 index를 줄 수는 없으나 모든 쿼리에서 동일하게 사용하는 조건이 있다면

- 또는 자주 사용하는 where 조건이 있다면 해당 컬럼은 index를 줘도 좋을지 고민해 보자.

2. 인덱스 추가한 date 컬럼 사용 시 주의점

- where 조건문의 왼쪽은 인덱스 대상이 아니기 때문에 where date_format(date) between ? and ? 하면

- 왼쪽의 date_format(date) 부분이 비효율적으로 동작한다. (인덱싱 되지 않는다.)

- 유사건으로 사내 제품에서 trim(date_column)으로 하고 있는 경우가 발견되어 조치 했다.

3. between 보다는 >= <= 를 사용

- 별 차이는 없어보이지만 어쨌든 >= and <= 를 개발자가 편리하게 사용하기 위해 between 함수를 사용하는데

- 인데스 된 컬럼을 사용시 함수 사용은 자제 하는 것이 좋다.

4. date, datetime 을 비교할 경우 unix_timestamp 로 하는것이 좋다.

- date 나 datetime 의 컬럼을 between 이나 >= 조건으로 사용하는 경우가 많은데

- 컬럼 타입을 int 로 하고 데이터를 unix_timestamp로 변경해서 비교하는것이 훨씬 빠를 수 있다.

728x90
반응형
LIST

'IT > DBMS 공통' 카테고리의 다른 글

[MySQL] Join 속도 향상하려면 (MySQL Hint)  (2) 2021.01.07
Procedure Cursor 를 이용한 ResultSet 반환  (0) 2020.10.15
MySQL 인덱스 설정 기준  (0) 2020.08.07
[MySQL] 실행계획  (0) 2020.01.31
database convert latin1 to utf-8  (0) 2014.09.15