마이바티스 (1) 리스트형 [MyBatis] 샾(#), 달러($)의 차이 SELECT * FROM TEST WHERE testId = #{testId} MyBatis에서 위와 같은 쿼리문을 실행하게 되면 데이터베이스에서는 아래 쿼리문에 대한 의미, 구문 분석 및 파싱 작업을 진행하게 됩니다. SELECT * FROM TEST WHERE testId = ? 만약 testId에 1 값이 바인드 되게 되면 database에서는 이미 파싱되어 있는 쿼리문을 재활용하게 되기에 위의 작업들을 줄일 수 있습니다. 단, 데이터베이스 옵티마이저에 대한 수행 계획은 항상 동일하다라는 것이 단점입니다. 수행 계획에 따른 데이터 추출은 데이터의 분포도에 영향을 받게 되는데 만약 1이라는 값이 TEST에 4개 존재하고, 2라는 값이 1000개 존재한다고 했을 때, 1을 추출할 때에는 인덱스 스캔이 .. 이전 1 다음