MySQL 8.0.12 이후의 Spatial Index
·
Back-End/SQL
❐ Description과거 회사에서 MySQL 5.7을 사용해서 Explain Analyze를 사용할 수 없다.그래서 docker mysql 버전을 8.4.3으로 업그레이드 해줬는데, 여기서 예기치 않은 오류를 만나게됐다.     ❐ 문제쿼리 분석을 Explain Analyze 사용을 위해 도커 MySQL 버전을 5.7 ➡️ 8.4로 변경해주었다.기존에는 문제없던 인덱스 생성에서 다음과 같이, Too many key parts specified; max 1 parts allowed 라는경고가 발생했으며, 결과적으로 인덱스 생성이 정상적으로 이루어지지 않았다.     ❐ 변경사항MySQL 8.0.12 이후에는 Spatial Indexes 관해서 아래와 같은 조건이 추가되었다. 1. SPATIAL 키워드는..
실행계획 유형을 알아보자
·
Back-End/SQL
❐ Description쿼리를 작성할 때 `EXPLAIN` 키워드를 작성하면 쿼리 실행계획을 확인할 수 있다.이를 가지고 실무에서 쿼리 개선할 때 종종 사용하곤 했는데, 리마인드 겸 정리해보려고 한다.     ❐ Type 컬럼1. System테이블에 데이터가 없거나 한 개만 있는 경우   2. Const조회되는 데이터가 단 1건인 경우로, 성능상 매우 유리한 방식이다. Unique Index나 PK를 사용하여 단 1건의데이터에만 접근하면 되므로 속도나 리소스 사용 측면에서 지양해야 할 타입이다.  3. eq_ref조인이 수행될 때 드리브 테이블의 데이터에 접근하며 고유 인덱스 또는 기본 키로 단 1건의 데이터를 조회하는경우 확인할 수 있다. 드라이빙 테이블과의 조인 키가 드리븐 테이블에 유일하므로 조인이..
ReadMe.md
·
Back-End/SQL
❐ Description과거 실무에서 프로젝트를 할 때 slow query를 개선해 본 경험이 있다.그 당시에는 구글링과 책들을 참고해서 했었는데, 이번에 한 번 블로그에 정리해볼까 한다.