inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Đặt nền tảng để cải thiện hiệu suất của nhà phát triển phần cuối

Bắt đầu sử dụng chỉ mục 2

인덱스 활용 질문

332

gjgmlwjd9

15 câu hỏi đã được viết

0

Q1 : WHERE 절에 검색조건으로 사용되는 컬럼이 5가지라고 가정하면 가장 카디널리티가 높은 컬럼 1개만 인덱스로 걸어야 하나요?? 아니면 카디널리티가 높은 순서대로 묶어서 하나의 복합 인덱스를 만들어 주어야 하나요?? 차이점이 궁금하고 어떤 방식이 더 나은 방식인지 궁금합니다

 

Q2 : WHERE 절에 사용되는 검색조건인 컬럼 한개가 있다고 가정했을때 해당 컬럼의 카디널리티 수치가 낮더라도 인덱스를 만드는게 낫지 않나요?

 

Q3 : Mysql의 경우 범위검색의 경우 B-Tree 인덱스를 사용한다고 알고있습니다 . 강의에서 만든 인덱스도 날짜이고 범위검색이니 B-Tree 인덱스를 사용한거 같습니다. 정확한 일치 검색의 경우 해시 인덱스를 사용할 수 있다고 들었습니다. 이때는 인덱스를 만들때 코드를 어떻게 써줘야 해시 인덱스를 만들 수 있나요?

java mysql spring-boot cache index

Câu trả lời 2

1

incudev2

A1: 

공식이 있기보다는 상황에 맞게 선택을 하셔야 되는데요.

저라면 이와 같은 방식으로 시도를 할 거 같습니다.

1.5개의 칼럼중에 카디널리티가 높은 단일 칼럼을 기준으로 단일 인덱스 생성

2.원하는 성능까지 나오는 체크

3.원하는 성능이 나온다면 여기 stop

4.아직 원하는 기준만큼 성능이 안나온다면 다른 칼럼들을 하나씩 추가하여 결합인덱스를 생성

5.결합인덱스를 통해 원하는 기준에 도달하였다면 stop

6.결합인덱스를 사용했는데도 아직 충분하지 않다.

7.DB단이 아닌 어플리케이션 단에서 개선 할 수 있는 포인트 찾기.

처음부터 결합인덱스를 생성하면 되는 이렇게 번거롭게 간 이유는 인덱스,결합인덱스의 단점 체크해주세요.

+ 결합인덱스 생성시 주의사항도 같이 체크해주세요.

면접대비 목차에서 언급 했던 주제이기 때문에 직접 찾아보고 공부 하시라고 언급만 해두었습니다.

A2:

2번 질문에 대한 답변도 상황에 맞게 선택한다가 제 생각입니다.

인덱스를 추가했을때 성능이 확실히 개선 됐는지 체크해보기.

실행계획을 통해 인덱스를 잘타고 있는지.

카디널리티 수치가 낮지만 인덱스를 추가함 로서 제가 원하는 기준에 성능까지 나오고 인덱스를 잘타고있다면 저라면 생성합니다.

0

kimensoo

3번의 경우 답변해드리자면 Innodb 스토리지 엔진의 경우 B-Tree 만 지원하는 것으로 알고 있어서 해시 인덱스를 사용하고 싶다면 Memory 스토리지 엔진을 사용해야 하는 것으로 알고 있습니다.

비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항

0

26

1

script Validate가 안됩니다.

0

55

1

thread pool

0

45

1

ngrinder 설치관련

0

128

1

캐싱 데이터가 안보입니다.

0

136

2

ExecutorService와 CompletableFuture의 차이점과 역할

0

262

2

섹션4: Ngrinder를 통한 성능 개선 확인 에서 사용하는 예제 코드

0

212

2

현업에서의 부하테스트 및 Ngrinder 설치

0

347

2

프로젝트 적용하는데 어려움이 있어 질문드립니다.

0

306

1

nGrinder validate가 안됩니다.

1

738

2

EhCacheManagerFactoryBean

0

406

2

인텔리제이 EditConfiguration 옵션 추가하는 방법 [ 공유O 질문X ]

2

511

2

프로젝트 공유

1

437

2

scouter client

0

387

2

스카우터 설치

0

491

2

생각보다 부하 테스트가 CPU를 많이 타는거 같은데 정상이겠죠?

0

360

1

로컬에서 성능 테스트하는 것이 어떨 때 유의미한가요?

0

957

1

nginder script작성 후 실행 후 Connection refused에러

0

749

2

scouter C드라이브 말고 다른 곳에서 실행 시 NoSuchFile 오류

0

415

2

java17환경에서 scouter 실행법 문의

1

1032

2

첫번째 회사에서 서비스 회사로 이직하실때 준비

0

377

1

ngrinder-agent 실행 문제(Unmapped relationship: 7)

0

370

1

ngrinder쪽에 스크립트 클릭시 오류

0

782

3

findNoticeByDates 실행 에러

1

245

2