2013-01-18 1 views
5

정상적인 성능을 위해 최대 절전 모드 테이블의 기본 키에 대한 인덱스 어노테이션을 추가해야합니까? @id로 필드를 표시하면 지수는 Hibernate 테이블의 @id 열에 인덱스를 생성해야합니까?

@Id 
private String guid; 

을 생성하지만

를 생성 된 DDL에서 생성되는 것을 알 didnt는하지만

@Id 
@org.hibernate.annotations.Index(name = "IDX_GUID") 
private String guid; 

다음 @index 주석을 추가 한 경우 나 통지를 할 DDL에서 인덱스가 생성됩니다.

그래서 모든 테이블에 대해이 작업을 수행해야한다고 생각하지만, 절전 모드에서 기본 키를 만들기 위해 인덱스를 만들 때 원점으로 사용하기를 바랍니다.

답변

6

색인을 명시 적으로 만들지 않아도됩니다. DDL 문을 보는 대신 hibernate가 생성 한 최종 스키마를 확인하도록 권장합니다. 인덱스는 create table statement의 일부로 작성됩니다.

+0

@Deepak, 내 이해를 확인하기 위해 인덱스 생성이 DDL (hbm2ddl) 내보내기 프로세스의 일부로 처리되지 않는다고 말하고 있습니까? 그렇다면 DDL을 쓸모 없게 만들거나 여기에 뭔가 빠져 있습니까? 감사합니다 – paulkmoore

+0

@paulkmoore 우리는 두 가지 방법으로 색인을 생성 할 수 있습니다. 즉. "Create index ..."또는 우리가 지정할 수있는 테이블을 생성하는 동안 .. 내가 말하고있는 것은 테이블을 생성하는 동안 기본 키의 인덱스가 생성된다는 것입니다. – Deepak

+0

@Deepak, Ok 고맙습니다. 기본 키 인덱스와 다른 (일반) 인덱스의 차이점이 누락되었습니다. 도와 주셔서 감사합니다. – paulkmoore

관련 문제