Database

Query Between 과 >=, <= 성능 차이

라임오렌지원 2022. 8. 24. 14:39

부등호와 Between 을 실행하면, Where을 이용한 부등호 비교 조회가 더 빠르다.

 

 

왜?

 

 

CPU Cycle 을 적게 소모했기 때문이다.

 

천만건이 들어있는 테이블 아래와 같이 카운팅하는 쿼리를 작성해 실행했을 때,

[x BETWEEN $1 AND $2] -> 평균 4.118333 초

[x >= $1 AND x <= $2] ->  평균 3.442857 초

시간이 소요되었다고 한다.

 

두 개 쿼리의 실행계획이 동일했고, 모든 데이터가 Buffer pool에 cache(Warming up)된

상태에서 실행했기 때문에 상태는 거의 동일했다고 보여진다.

 

 

그리고 하나 더 알게 된게,

MySQL에서 DATETIME 형식의 데이터를 고속으로 검색할 때는

UNIX_TIMESTAMP 함수를 이용하면 DATETIME 형식보다 3배~4배(?) 고속화가 가능하다.

 

1.DATETIME 형의 경우

-----------------------------------------------------

SELECT * FROM test_datetime

WHERE date between '2013-01-01' and '2013-06-30';

처리 결과 ( 5.20 sec )

 

2.INT 형의 경우

-----------------------------------------------------

SELECT * FROM test_unixtime

WHERE date_unixtime between 1356966000 and 1372518000;

처리 결과 ( 1.64 sec )

 

 


참고사이트

 

https://velog.io/@ggomjae/Mysql-Query-Between-%EA%B3%BC-%EC%84%B1%EB%8A%A5-%EC%B0%A8%EC%9D%B4-%EB%B9%84%EA%B5%90-%EB%8D%94%EB%AF%B8%EB%8D%B0%EC%9D%B4%ED%84%B0-50%EB%A7%8C

 

Mysql Query Between 과 >=, <= 성능 차이 비교 ( 더미데이터 50만 )

현재 친절한 SQL 튜닝을 읽고 있습니다. 그러던 중 Between And 과 Where 부등호 사이의 성능 차이가 있다는 말을 들었고 직접 Test를 진행했습니다.

velog.io

https://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=qna_db&wr_id=169726 

 

WWW.PHPSCHOOL.COM

개발자 커뮤니티 1위 PHPSCHOOL.COM 입니다.

www.phpschool.com

https://devhood.tistory.com/249

 

MySQL에서 DATETIME 형식 데이터 고속 검색 방법

| MySQL에서 DATETIME 형식의 데이터를 고속으로 검색하기 MYSQL의 UNIX_TIMESTAMP 함수를 이용 INT 형으로 저장하여 DATETIME 형식보다 3 배 ~ 4 배(?) 고속화가능 | Memo 1.DATETIME 형의 경우 -----------..

devhood.tistory.com

 

728x90

'Database' 카테고리의 다른 글

[Mysql] on duplicate key update  (0) 2023.08.24
[MySQL] 테이블 생성문에 timestamp & index사용하기  (0) 2022.11.28
슬레이브(Slave)란?  (0) 2022.11.24
MySQL 인덱스  (0) 2022.09.02
쿼리 Query 최적화 및 튜닝  (0) 2022.08.23