Spring data jpa에서 innodb 사용하기

새롭게 개인 프로젝트를 진행하면서 spring jpa를 사용하는중, 아래와 같은 에러 메세지를 만났다.

Issue

Specified key was too long max key length is 1000 bytes

원인
unique 조건을 걸은 column에서 인덱스가 만들어지는데, 이때 생성되는 인덱스의 크기가 현재 사용하는 engine에서 설정된 limit을 초과해서 발생한 오류.

해결
생성된 테이블을 조사하니, ‘MyISAM’ engine으로 작동중.

MyISAM과 InnoDB에서 인덱스 생성 관련하여 구동방식이 다르기에 (자세한건 타 포스팅 참조), InnoDB를 사용하도록 설정해야 했다.

그래서 Spring Boot properties에 아래의 값을 설정하였다.

spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDB53Dialect

dialect를 설정하지 않고 mysql을 사용할경우, myisam을 default로 사용한다.