튜닝 2

MySQL 튜닝 : 적합한 인덱스 생성하기

Case 1 : 적합한 인덱스가 없을 때 다음은 이름이 Badri 인 사원을 검색하는 쿼리입니다. 먼저 적합한 인덱스가 없어 테이블 전체 299335건을 탐색했습니다(type : ALL). 그리고 나서 where 조건을 이용해10%만 걸러내었습니다. ( filtered : 10.00, Extra Using where) SELECT E.EMP_NO FROM employees E WHERE E.FIRST_NAME = 'Badri'; 실제 저 쿼리 결과로 검색되는 데이터의 건수는 227건입니다. 전체 중 227건을 추출하기 위해 테이블 전체를 스캔하는 것은 비효율적입니다. 그래서 first_name을 구성 칼럼으로 가지는 인덱스를 추가해주었습니다. alter table employees add index id..

DB/SQL 2021.10.11

MYSQL SELECT 튜닝

인데스 칼럼의 변형 제거하기 다음처럼 WHERE 조건에서 인덱스 칼럼 값에 변형이 가해진 경우는 인덱스를 사용하지 못해 비효율적입니다. 인덱스 칼럼에 변형을 제거해주어야 합니다. [튜닝 전] SELECT A, B, C FROM T WHERE PK1/100 = 1; [튜닝 후] SELECT A, B, C WHERE PK1 BETWEEN 100 AND 199; 다음은 WHERE 조건에서 인덱스 칼럼 2개를 합쳐서 사용한 경우입니다. 이도 마찬가지로 인덱스 칼럼에 변형이 가해졌기 때문에 인덱스를 사용하지 못해 비효율적입니다. [튜닝 전] SELECT A, B, C FROM TABLE WHERE CONCAT(A,B) = '202107'; [튜닝 후] SELECT A, B, C FROM TABLE A = '202..

DB/SQL 2021.10.10