티스토리 뷰

반응형

date 타입으로 저장된 컬럼을 Select 해올때 between과 대소 비교 연산자 성능의 차이에 대해 테스트 해보려고 한다.

일단 더미데이터 테이블의 DDL은 다음과 같다.

create table test_datetime
(
    id        bigint unsigned auto_increment
        primary key,
    isTest    tinyint     default 0                    not null,
    createdAt datetime(6) default CURRENT_TIMESTAMP(6) not null,
    updatedAt datetime(6) default CURRENT_TIMESTAMP(6) not null on update CURRENT_TIMESTAMP(6),
    deletedAt datetime(6)                              null
);

create index IDX_isTest
    on test_datetime (isTest);


데이터는 프로시저를 사용하여 손쉽게 만들었다. 
https://seung-min.tistory.com/50

 

[SQL] mySQL Procedure 사용하여 반복문 사용하기

쿼리를 이용하여 작업중, 수많은 더미데이터를 Insert 해야하는 경우가 생겼는데 반복문을 사용해야하는 경우 프로시저를 이용하여 손쉽게 처리할 수 있습니다. CREATE PROCEDURE dummy_insert_loop() BEGIN D

seung-min.tistory.com

 

1억개의 더미데이터중  Beteween과 대소 비교연산자를 사용하여 각각 1500건, 5000건, 400만건, 1000만건, 3000만건, 5000만건, 7000만건 Select를 진행하였다.

총 결과를 정리해보면 다음과 같다. 단위는 ms 이다.


1,500 5,000 4,000,000 10,000,000 30,000,000 50,000,000 70,000,000
Beteween 56.43 59.56 65.188 69.892 103.354 131.961 150.78
대소 비교 연산자(>,<) 34.587 36.746 39.308 47.83 74.196 107.765 136.849

인덱스가 걸리지 않은 Date 타입을 조회할 경우 Beteween 연산자 보다 대소비교 연산자가 훨씬 빠름을 알 수있다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함