반응형
데이터베이스 접근
데이터베이스에 접근할 때, statement를 선언하고 접근해 본 적이 있을 것이다.
근데 PreparedStatement와 무슨차이인가? 결국 같은 쿼리문을 보내는 것이 아닐까?
프로시저의 차이가 발생한다.
라이브러리 캐시
1. SQL문을 하나 사용할 때, 내부적으로 옵티마이저와 로우소스 생성기가 자동으로 프로시저를 만들어서 라이브러리 캐시에 할당하게 된다.
2. SQL문은 소문자 대문자와 같이 한 글자의 차이로도 새로운 프로시저를 만들게 되어있다.
3. 즉, 로그인 할 때, 유저아이디를 이용해서 찾게되면, 새로운 프로시저가 유저 수 만큼(500만명 로그인하면 500만개)가 라이브러리 캐시에 저장되게 됨
4. 이런 문제를 방지하기 위해 바인드변수가 존재하고, 바인드변수를 사용하는 방법이 PreparedStatement임. 유저 아이디를 매개변수로 처리하여 하나의 프로시저만 라이브러리캐시에 저장되게끔 만듬
반응형
'JAVA > 웹 프로그래밍 딥하게 파보기' 카테고리의 다른 글
오라클 클라우드+젠킨스 초기설정 (2) | 2025.06.04 |
---|---|
왜 무상태여야하는가? (1) | 2024.12.09 |
스프링 대규모 요청이 왔을 때 (0) | 2024.12.09 |
스프링의 역할 (2) | 2024.12.06 |
자바로 HTTP 네트워크 요청이 전송되는 원리를 알아보자 (1) | 2024.12.04 |