inflearn logo
강의

講義

知識共有

MySQLパフォーマンスの最適化

Theory

실무에서 prefix index를 어떤 요구사항이 있을때 사용하는지 궁금합니다!

解決済みの質問

465

soap

投稿した質問数 37

0

실무 요구사항에서 blob, text, 긴 varchar와 같은 칼럼을 인덱싱하는 경우가 있을까요?

당장 기억나는건 게시글 내용 검색 밖에 생각이 안나네요..

 

그리고 요 아래글에 나와있는 prefix index의 한계점도 맞는 말일까요?

https://stackoverflow.com/questions/31526618/mysql-prefix-index-vs-index

(아래는 챗지피티가 요약해준거라 정확하지 않을 수 있습니다 ㅠ)

  1. 인덱스를 통해 "가능한" 행들을 먼저 찾고, 이후 실제 데이터 행을 검색하여 추가 필터링을 수행(두 단계를 거치므로 인덱스를 사용하지 않을때보다 더 많은 시간 소요..?)

2.정렬(sorting)이나 그룹화(grouping) 작업에는 사용되지 않음.

  1. ORDER BY 절을 명시적으로 사용하지 않는 한 결과의 순서는 보장되지 않음

  1. 커버링 인덱스로 사용 불가

 

sql mysql dbms/rdbms optimizing

回答 1

1

yjm9505168574

안녕하세요~ 질문 남겨주셔서 감사합니다.

 

먼저, Prefix 인덱스는 꽤 다양하게 사용될 수 있는데요.

  • 게시글 본문 내용을 색인하는 경우

  • 이커머스 플랫폼에서 상품 설명이 저장된 긴 내용을 색인하는 경우

  • 로그 데이터나 사용자의 행동을 기록하는 텍스트 필드에서 색인하는 경우

 

그리고 다음 질문 주신 내용인 prefix index의 한계점도 일부 맞는 말입니다:

  • Prefix 인덱스는 해당 prefix로 시작하는 모든 행을 먼저 찾은 다음, 실제 데이터를 검색하여 추가적인 필터링을 수행해야 합니다. 이렇게 두 단계를 거치지만 인덱스를 사용하지 않는 경우보다는 빠를거에요. 물론 인덱스 검색도 전체 데이터의 20~25%이상 조회하는거라면 풀스캔이 더 빠르긴 하겠죠.

  • Prefix 인덱스는 ORDER BY GROUP BY 절에서의 정렬이나 그룹화 작업에 효과적이지 않아요. 이건 인덱스가 전체 값을 포함하지 않기 때문에, MySQL이 결과의 정확한 순서를 보장할 수 없기 때문이에요.

  • 커버링 인덱스는 쿼리가 필요로 하는 모든 데이터를 인덱스에서 직접 가져올 수 있을 때 사용되는데요. Prefix 인덱스는 필드의 일부만을 포함하므로, 쿼리가 해당 필드의 전체 데이터를 필요로 하는 경우 추가적인 디스크 접근이 필요하기 때문에 사용할 수 없어요.

     

 

패키지 구분에 대해 궁금한게 있습니다

0

7

1

노션 링크도 안 열리고, 알려준 vercel도 실행이 안됩니다.

0

10

1

Substack 1년 제공

1

21

3

특별 학습 자료 프로모션 1년 멤버십 무료 제공 문의드립니다

0

27

2

스프링부트 서버 에러나요

0

17

1

코드를 첨부해야하는 이유가 있나요?

0

20

2

performance_schema.events_stages_history_long, performance_schema.events_statements_history_long 테이블에 데이터가 쌓이지 않고 있습니다.

0

110

1

innodb deadlock detect 비활성화 질문

0

390

1

ssd 에선 innodb_flush_neighbors을 0으로 하면 될까요?

1

227

1

innodb_buffer_pool_instances 기준 질문 드립니다

0

703

1

no offset 최적화를 사용할 수 없을 것 같은 경우에는 어떻게 최적화를 해야할까요?

0

258

2

실습 자료에 명시된 쿼리문들이 짤려있습니다.

0

218

1

my.cnf에 설정이 오타로 인해 잘못 들어가서 구동이 안될때는 어떻게 해야할까요?

0

297

1

내장함수로 감싸진 칼럼의 order by 최적화는 불가능할까요?

0

222

2

bulk_insert.py로 삽입되는 데이터 건수가 100만 건인데 정상일까요?

0

238

1

섹션3 Theory 노션 위치 이동 제보

0

203

1

실무에서 로드 데이터 활용하는 사례 및 기타 질문

0

257

1

강의자료 insert_optimization > load_data.py 내용이 바뀐것 같습니다..!

0

231

1

강의에 사용된 노션 링크 받을 수 있을까요?

0

275

1

AUTO INC Lock 하고 뮤택스 락 차이 관련해서 질문 드립니다.

0

269

1

섹션 4 Theory 영상에서 계속해서 노션의 화면 위치가 이동

0

296

2

커버링 인덱스

0

637

2

해당 강의 제공 코드를 보니 DB 커넥션 정보를 넘길때 포트가 빠졌네요

0

430

1

Task2는 직접해보는 부분인가요?

0

440

1