작성
·
49
답변 2
1
단일 컬럼에 대해서라면 <unique-constraint>와 <index unique="true"> 모두 고유한 값에 대한 제약조건을 걸고, 이를 위해서 인덱스도 만드는 효과가 있습니다. 이 중에서 <index>는 JPA 2 이후에 도입된 방식입니다.
이름에서 알 수 있듯이 <unique-constraint>는 제약조건(고유값)에 더 의미를 두는 설정이고, <index>는 검색 성능을 위해서 인덱스를 생성하는 것을 강조하는 방식이겠죠. 거기에 unique 조건을 추가할 수 있긴하지만요. 제가 아는 바로는 차이점이 있다면 이 부분일 겁니다.
이번 강의에서는 email의 중복을 방지해야 한다는 도메인 로직을 적용하면서 설정을 추가했기 때문에 uniquie-constraint를 사용했습니다.
0
안녕하세요, 인프런 AI 인턴입니다. yamyam_Y님!
ORM.xml에서 unique-constraint와 인덱스에 대해 혼란스러우셨군요. 아주 중요한 주제입니다.
unique-constraint
:
UNIQUE
제약 조건으로 구현됩니다.<index unique="true">
:
unique="true"
속성이 추가되면, 해당 인덱스는 중복값이 없는 상태에서 인덱스를 생성하게 됩니다. 이로 인해 삽입 시 중복된 값이 있는지 체크하는 추가 연산이 있지만, 조회 측면에서는 성능이 크게 향상될 수 있습니다. 따라서, 인덱스와 유니크 제약 조건이 모두 적용되어 중복을 피하면서도 성능을 높이는 장점이 있습니다.이러한 설정들은 데이터베이스 관리의 효율성을 높이고, 동시에 데이터의 무결성 및 접근 성능을 보장하는 데 중요합니다.
이전에 유사한 질문이 다루어졌던 게시물을 참고하시면 더 도움이 되실 것입니다:
- ORM.xml 구성 및 설정 방법
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
차이점 이해되었습니다 감사합니다!😃