You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
col1이 속한 테이블을 풀 테이블 스캔하는지, 아니면 서브쿼리가 속한 테이블을 풀 테이블 스캔하는지 궁금한거라고 이해했는데,
예제에 보면 SELECT절에 서브쿼리가 있어.
SELECTd.dept_no, NULLIN (SELECTid.dept_nameFROM departments id)
FROM departments d;
SELECT절의 서브쿼리는 항상 스칼라값(컬럼 하나의 값)만 올 수 있어서 서브쿼리의 테이블이 곧 col1의 테이블이기 때문에 전체를 풀 테이블 스캔한다는 말 같아.
추가로 공식문서 설명을 덧 붙이면,
MySQL 공식문서
When the optimizer uses a triggered condition to create some kind of index lookup-based access (as for the first two items of the preceding list), it must have a fallback strategy for the case when the condition is turned off. This fallback strategy is always the same: Do a full table scan.
옵티마이저가 트리거 조건(col1)을 사용해 인덱스 조회 기반 액세스를 만들때, 조건이 부합 안될 경우(null) 대비책이 필요한데, 이 대비책은 항상 풀 테이블 스캔이어야 한다.
MariaDB 공식문서
The table is a part of the sub query and if the value that is used to match the sub query will be NULL, we will do a full table scan.
테이블은 서브쿼리의 일부이고, 서브쿼리와 매치되는 값이 null일 경우 풀 테이블 스캔을 할 것이다.
질문 : 여기서 풀 테이블 스캔을 사용한다는게 정확히 무슨 의미인지 잘 와닿지가 않아. NULL을 가지고 서브 쿼리가 아닌 테이블을 풀 테이블 스캔을 한다는 건가?
The text was updated successfully, but these errors were encountered: