본문 바로가기
잡다한 지식

[SQL] mediumtext 가 준 교훈..

by 얼음꽃 2025. 3. 21.
728x90

한 테이블에서 필드 타입을 text 가 아닌 mediumtext를 사용하고 있었습니다.

 

처음에는 괜찮았는데 어느 순간 테이블에 데이터가 쌓이면서 단순 select 쿼리도 속도가 너무 느리다는걸 느꼈습니다.

 

예) 초반 0.5초 -> 현재 1분 44초...

 

그래서 여러가지를 분석해봤습니다.

 

단순 raw query 에 대한 문제인지 아닌지 부터 시작해봤죠...

 

기본적으로 vscode에서 다루는 orm 은 sequelize 이용하고 있어서

 

이걸로, sequelize 쿼리 / raw 쿼리 둘다 진행 해봤는데 속도는 매우 빠르게 나왔습니다.

 

그러나, DB에서 raw 쿼리를 진행하면 1분 넘도록 실행하더군요...

 

 

왜 orm은 빠른데 DB 프로그램은 느리냐!!! 라는 걸 봤는데

 

sequelize-auto를 써서 db 모델을 가져오면 mediumtext는 데이터 타입을 text로 퉁치더라구요.

 

그래서 혹시??? 하는 마음에 보니, db 프로그램에서 쿼리 진행 시에는 mediumtext 자체 인식을 하고

 

orm은 text로 맵핑되어있는걸로 인식되어서 빠르더라구여 (쌓이는게 좀 있어서 mediumtext를 쓸수밖에 없는 상황)

 

그래서 결론은, mediumtext를 못쓸거면 쿼리 진행 시 강제 변환을 하자!! 라고 결론 내렸습니다.

 

SELECT field1, field2, CONVERT(field3, CHAR(65535)) AS field3 FROM table WHERE id = 2;

 

해당 쿼리처럼 convert를 이용해서 오래걸리는 필드 타입을 강제로 text 변환하니 orm 과 똑같은 속도로 진행하더군요.

 

 

개비스콘 먹은거 처럼 마음이 편안해 졌습니다.

728x90

'잡다한 지식' 카테고리의 다른 글

[SPF] SPF 레코드  (0) 2024.11.12
[SEQUELIZE] create와 bulkCreate  (0) 2024.11.04
[JS] 문제 있는 url 주소 찾기  (1) 2024.10.22
[SQL] tinyint 타입에 대한 인덱싱 작업  (2) 2024.09.26
[SQL] WITH 쿼리  (1) 2024.09.09