JPA에서 실제 실행 쿼리(SQL) 로그 설정 ON/OFF

 

 

스프링부트에서 JPA를 통해 실제로 실행되는 쿼리를 보고 싶다면 ON/OFF 할 수 있는 설정이 있습니다.

위 사진처럼 src/main/resource 디렉토리 아래에 application.properties 파일내에

spring.jpa.show_sql = true

한 줄 추가해 줍시다. 그러면 로그는 나오지만 디폴트로 h2라는 메모리DB 문법이 적용되기 때문에 그 아래줄의

sping.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

한 줄 더 추가해 줍시다. 그러면 위 사진처럼 로그가 나옵니다.

 

※ 사실 사진은 MySQL5Dialect 이지만 설명은 MySQL5InnoDBDialect라고 하였다.

사진 속에서 3번째 줄을 보면 default storage engine을 innodb로 한다는 한 줄이 추가 되어있다. 그래서 결과는 같다.

원래 디폴트는 MyISAM 엔진이다.

 

>MyISAM엔진은 Full-text 인덱싱이 장점이라 조회가 빠르지만 나머지 단점이 개인적으로는 큰 거같다...

단점으로 ①Table-level locking, ②트랜젝션 없음, ③무결성 보장못함이 있다.

>InnoDB엔진은 반대로 ①Row-level locking, ②트랜젝션 있음, ③무결성을 보장한다.

단점은 모델 디자인에 시간이 걸리고, Full-text인덱싱이 없으며, 시스템 자원을 더 먹는다는 것.

 

이 글을 공유하기

댓글

Designed by JB FACTORY