슬로우쿼리

MySQL에서 조건절에서 컬럼에 캐스팅을 사용하면 성능에 영향을 미치는 이유는 다음과 같습니다. 1. 인덱스 활용 어려움 캐스팅을 통해 컬럼의 데이터 형식이 변경되면, 해당 컬럼에 대한 인덱스 활용이 제한됩니다. 인덱스는 원본 데이터 형식을 기반으로 작성되며, 캐스팅을 적용하면 인덱스가 효과적으로 활용되지 못합니다. 결과적으로 조건 검색 시 성능 저하가 발생할 수 있습니다. 2. 풀 스캔 필요 캐스팅을 사용하면 데이터베이스 시스템은 모든 레코드를 순회하여 조건을 충족하는 레코드를 찾아야 합니다. 이는 "풀 스캔"이라고 알려져 있으며, 데이터베이스 성능을 저하시키는 주요 원인 중 하나입니다. 특히 대용량 테이블에서 더 큰 문제가 발생할 수 있습니다. 3. 타입 불일치 캐스팅을 적용하면 데이터 타입이 변경되..
오늘은 회사에서 일을 하던 중 내가 짠 쿼리가 운영환경에서 10초이상 걸리며 오래 걸렸던 문제를 해결한 경험을 공유하고자 한다. 쿼리는 아래와 같은 카운트 쿼리에 데이터는 약 수억건이 있는 테이블이였다. (테이블명이나 컬럼명 등은 변경한 상태이니 양해바란다) SELECT COUNT(id) FROM member WHERE (created_at >= '2020-03-25 00:00:00.0' AND created_at < '2020-03-26 00:00:00.0') 데이터가 많이 없는 테이블에서 위와같은 카운트쿼리는 크게 문제되지 않겠지만 내가 쿼리를 날린 테이블은 수억건이 있기 때문에 조회를 할 때는 무조건 인덱스를 활용해서 날려야 한다. 그런데 이 member 테이블에는 간단하게 id, name, cre..
Chung-A
'슬로우쿼리' 태그의 글 목록