[ CS / DataBase ] Statement & Prepared Statement

황승환·2022년 10월 8일
0

CS

목록 보기
60/60

Statement & Prepared Statement

statement와 Prepared Statement에 대해 공부해보자.
우선 가장 큰 차이점은 캐시의 사용 여부이다.

Statement

  • 쿼리문을 수행할 때마다 SQL 실행단계 1, 2, 3단계를 거친다.
  • SQL문을 수행할 때마다 매번 컴파일하기 때문에 성능 이슈가 있다.
  • 실행되는 SQL문을 볼 수 있다.
"SELECT * FROM STUDENTS WHERE NAME =" + name

Prepared Statement

  • 컴파일이 미리 되어있기 때문에 성능이 비교적 좋다.
  • 특수문자를 자동으로 파싱하기 때문에 SQL Injection을 막을 수 있다.
  • ?를 활용하여 SQL문을 사용하기 때문에 실행되는 SQL문이 무엇인지 파악하기 어렵다.
"SELECT * FROM STUDENTS WHERE NAME = ?"

비교

왠만하면 Prepared Statement를 활용하는 것이 좋다. 그 이유는 다음과 같다.

  • Prepared Statement는 SQL Injection을 방지해준다.
  • Prepared Statement는 입력값을 자동으로 파싱해주기 때문에 에러를 막을 수 있다.
  • Prepared Statement는 수행된 SQL문이 캐시처리 되기 때문에 성능이 훨씬 좋아진다. (특히 같은 쿼리를 반복하는 경우)
profile
꾸준함을 꿈꾸는 SW 전공 학부생의 개발 일기

0개의 댓글