mysql 실행계획
-
Mysql 실행계획(explain) 보는법DB/MySql 2020. 5. 11. 17:41
table 어떤 테이블에 대한 접근을 표시하고 있는지는 table 필드에 표시되어있다. id id는 SELECT에 붙은 번호를 말한다. MySQL은 조인을 하나의 단위로 실행하기 때문에 id는 그 쿼리에 실행 단위를 식별하는 것이다. 따라서 조인만 수행하는 쿼리에서는 id는 항상 1이 된다. select_type select_type은 항상 SIMPLE 이된다. 복잡한 조인을 해도 SIMPLE이 된다. 서브쿼리나 UNION이 있으면 id와 select_type이 변한다. SIMPLE: 단순 select ( union이나 서브쿼리를 사용하지 않음 ) PRIMARY: 가장 외곽에 있는 select문 UNION: union에서의 두번째 혹은 나중에 따라오는 select문 DEPENDENT UNION: unio..
-
MySql 옵티마이져 실행 개요DB/MySql 2020. 5. 11. 17:15
쿼리 실행 절차 사용자로부터 요청된 SQL 문장을 잘게 쪼개서 MySQL 서버가 이해할 수 있는 수준으로 분리한다. SQL의 파싱 정보(파스 트리)를 확인하면서 어떤 테이블부터 읽고 어떤 인덱스를 이용해 테이블을 읽을지 선택한다. 두번째 단계에서 결정된 테이블의 읽기 순서나 선택된 인덱스를 이용해 스토리지 엔진으로부터 데이터를 가져온다. 첫 번째 단계를 "SQL 파싱(Parsing)"이라고 하며, MySQL 서버의 "SQL 파서"라는 모듈로 처리합니다. 만약 SQL 문장이 문법적으로 잘못됐다면 이 단계에서 걸러집니다. 또한 이 단계에서 "SQL 파스 트리"가 만들어집니다. MySQL 서버는 SQL 문장 그 자체가 아니라 SQL 파스 트리를 이용해 쿼리를 실행합니다. 두 번째 단계는 첫 번째 단계에서 만들..