관리 메뉴

너와 나의 스토리

Indexing이란? 인덱싱하는 이유 장점/단점, ID로 인덱싱하는 게 더 효율적인가? 본문

개발

Indexing이란? 인덱싱하는 이유 장점/단점, ID로 인덱싱하는 게 더 효율적인가?

노는게제일좋아! 2023. 2. 26. 15:29
반응형

Indexing하는 이유

  • 디비나 검색엔진에 대량의 데이터가 쌓이면 검색 속도가 노려지는데, 이 때, 데이터를 적절하게 인덱싱(indexing)하면 검색 속도를 획기적으로 높일 수 있다.

 

Indexing이란?

  • 디비나 검색엔진에서 특정 컬럼이나 필드를 색인화(indexing)하여 검색 속도를 높이는 기술.
  • 인덱스를 사용하여 검색하는 경우, 해당 인덱스를 기반으로 빠르게 인덱싱된 데이터를 찾을 수 있다.
  • 또한, 인덱싱을 통해 데이터의 정합성을 유지하고, 중복 데이터를 최소화할 수 있다. -> 데이터의 일관성과 신뢰성을 높임.
  • 다만, 인덱스를 생성하는 과정에서 추가적인 디스크 공간과 처리 시간이 필요함. 

 

Q: Jpa에서 다른 entity의 id로 indexing하는 방법?

  • J@Index 어노테이션을 사용하여 해당 필드에 인덱스를 생성할 수 있다.
@Entity
public class MyEntity {
    
    @Id
    @GeneratedValue
    private Long id;

    @ManyToOne
    @Index(name="another_entity_id_index")  // Index 어노테이션 사용
    private AnotherEntity anotherEntity;
    
    // ...
}

 

 

Q: Jpa에서 indexing을 적요할 때, id를 적용하는 게 더 효율적인가? 아니면 다른 필드를 indexing해도 성능은 똑같은가?

  • JPA에서 인덱싱을 적용할 때, ID 필드를 인덱싱하는 것이 더 효율적이다.
  • 이는 대부분의 JPA 구현체에서 ID 필드에 대해 자동으로 인덱스를 생성하기 때문이다.
    • 또한 ID 필드는 테이블의 기본키(primary key)로 사용되므로, 검색 속도를 높이는 데에 큰 역할을 함.

 

Q: Indexing을 적용하는게 항상 효율적인가?

  • 성능 향상을 위해서는 인덱스를 적용할 필드의 특성과 사용 패턴에 따라 적절한 인덱스 종류와 인덱스 컬럼을 선택해야 한다.
  • 문자열 필드에 대해 인덱싱을 적용할 때는 풀텍스트 인덱스(Full-Text Index)를 사용하는 것이 더 효율적일 수 있다.
  • 인덱스는 검색 속도를 높이는 대신, 데이터 변경 작업 시에 인덱스를 업데이트해야 하므로 데이터 변경 속도가 느려질 수 있다.
  •  인덱스는 검색 속도를 높이는 대신, 데이터 변경 작업 시에 인덱스를 업데이트해야 하므로 데이터 변경 속도가 느려질 수 있다.
  • . 따라서 인덱스를 적용할 필드는 검색 빈도가 높은 필드에 대해 선택하는 것이 좋습니다.

 

 

반응형
Comments