본문 바로가기
데이터베이스/RDB

바인드 변수의 중요성

by 정재익 2026. 2. 26.

SQL을 실행하면 파싱하고 최적화한다 이때마다 연산은 불필요하기에 보통 DB안에는 라이브러리 캐시가 있다.

 

만약 SQL문을 SELECT * FROM CUSTOMER WHERE LOGIN_ID = '" + login_id + "'";로 작성한다면

라이브러리 캐시에는 

SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'a'

SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'b'

SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'c'

SELECT * FROM CUSTOMER WHERE LOGIN_ID = 'd'

등등이 가득차있다. 그때마다 캐시를 생성하는 것이다

 

그런데 만약 SELECT *FROM CUSTOMER WHERE LOGIN_ID = ?; 로 작성한다면

라이브러리 캐시에는

SELECT * FROM CUSTOMER WHERE LOGIN_ID = :1 밖에 없어서 나머지는 캐싱을 활용할 수 있다.

 

'데이터베이스 > RDB' 카테고리의 다른 글

풀 테이블 스캔 vs 풀 인덱스 스캔  (0) 2026.03.15
MySQL의 쿼리 실행 구조  (0) 2026.03.08
인덱스 스캔  (0) 2026.01.10
순차I/O와 랜덤I/O  (0) 2026.01.10
데이터베이스 격리수준  (0) 2025.12.23