스캔 방식에 따라 표시되는 메시지

책너두 6기 45일차 백은빈, 이성욱의 Real MySQL 8.0 1권 p.466 ~ p.472 내용정리 10 실행계획 10.3 실행계획분석 10.3.12 Extra 칼럼 10.3.12.14 Plan isn’t ready yet EXPLAIN FOR CONNECTION 명령은 MySQL 옵티마이저가 의도된 인덱스를 사용하지 못해서 풀 스캔을 한다거나 잘못된 실행 계획을 선탣한 것이 아닌지 확인할 떄 유용하게 사용할 수 있는 명령이다. 이 명령을 실행했을 때 Extra 칼럼에 “Plan is not ready yet"이라는 메시지가 표시되면, 해당 커넥션에서 아직 쿼리의 실행 계획을 수립하지 모 ㅅ한 상태에서 EXPLAIN FOR CONNECTION 명령이 실행된 것을 의미한다. 따라서, 잠시 후 실행하면 된다. ...

2023년 11월 1일 · 1 분 · 배준수

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 분 · 배준수