CREATE TABLE `student` ( `no` int, `name` varchar(6), `class_name` varchar(100), PRIMARY KEY (`no`,`name`,`class_name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='학생'; CREATE TABLE `class` ( `no` int NOT NULL, `name` varchar(6) NOT NULL, `name2` varchar(100) DEFAULT NULL, PRIMARY KEY (`no`,`name`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='학급';
예시 테이블을 2개 만들고, 쿼리를 실행 하였는데
저는 student 테이블을 ALL 타입, Class 테이블 PK로 eq_ref 처리하고 싶은데
실제 실행계획은 class 테이블 ALL, student 테이블 ref 처리로 결과가 나오네요.. (실제 테이블에도 PK만 걸려있어서 PK만 걸었습니다!)
제가 원하는 처리를 하려면 어떻게 해야하는지 알 수 있을까요??
바쁘시겠지만, 왜 실행계획이 이렇게 나온지도 알려주시면 정말 감사드리겠습니다!
explain select * from student student left outer JOIN class class ON student.class_name = class.name where student.no = 1;