정렬 처리 방법의 성능 비교

책너두 6기 29일차 백은빈, 이성욱의 Real MySQL8.0 1권 p.299 ~ p.308 내용정리 09 옵티마이저와 힌트 9.2.3.3.3 임시 테이블을 이용한 정렬 2개 이상의 테이블을 조인해서 그 결과를 정렬해야 한다면 임시 테이블이 필요할 수 있다. 이 방법은 3가지 정렬의 방법 중 가장 느리다. 9.2.3.3.4 정렬 처리 방법의 성능 비교 퀄에서 인덱스를 사용하지 못하는 정렬이나 그루핑 작업이 왜 느리게 작동할 수 밖에 없는지 한번 살펴보자. 쿼리가 처리되는 방법을 스트리밍 처리와 버퍼링 처리 2가지로 구분했다. ...

2023년 10월 13일 · 3 분 · 배준수

B-Tree 인덱스를 통한 데이터 읽는 방법

책너두 6기 22일차 백은빈, 이성욱의 Real MySQL8.0 1권 p.228 ~ p.236 내용정리 08 인덱스 8.3.3.3 선택도(기수성) 인덱스에서 선택도(Selectivity) 또는 기수성(Cardinality)은 거의 같은 의미로 사용되며, 모든 인덱스 키 값 가운데 유니크한 값의 수를 의미한다. 인덱스 키 값 가운데 중복이 많을수록 기수성과 선택도는 낮아진다. 선택도가 높을수록 검색 대상이 줄어서 빠르게 처리된다. 선택도가 좋지 않다고 하더라도 정렬이나 그루핑과 같은 작업을 위해 인덱스를 만드는 것이 훨씬 나은 경우도 많다. 인덱스에서 유니크한 값의 개수는 인덱스나 쿼리의 효율성에 큰 영향을 미친다. 8.3.3.4 읽어야 하는 레코드의 건수 인덱스를 통해 테이블의 레코드를 읽는 것은 인덱스를 안 거치는 것 보다 높은 비용이 든다. 100만 중 50만을 읽어야하는 쿼리가 있다면 무엇이 효율적일지 판단해야 한다. 테이블 모두 읽고 50만개 버리기 인덱스를 통해 필요한 50만 개 읽기 8.3.4 B-Tree 인덱스를 통한 데이터 읽기 mYSQL이 인덱스를 이용하는 대표적인 방법 세 가지 ...

2023년 9월 28일 · 2 분 · 배준수