filtered
은 MySQL EXPLAIN EXTENDED
의 의미에서 무엇을 의미합니까?MySQL EXPLAIN EXTENDED의 문맥에서 필터링 된 의미는 무엇입니까?
MySQL Docs 상태 :
여과 (JSON 상품명 : 여과)
여과 컬럼 테이블의 조건에 의해 필터링 될 테이블 행의 예상 비율을 나타낸다. 즉, 행은 검사 된 행 수를 나타내고 행 x 필터링 된/100은 이전 테이블과 조인 될 행 수를 표시합니다. MySQL 5.7.3 이전에는 EXPLAIN EXTENDED를 사용하면이 컬럼이 표시됩니다. MySQL 5.7.3부터 확장 출력은 기본적으로 사용 가능하며 EXTENDED 키워드는 필요하지 않습니다.
하지만 아직 실마리가 없습니다. 예를 들어 100.00
은 의미가 있습니까? 43.61
이 있다면 무엇을 의미합니까? 더 낫니? 보다 나쁜? 나는 100.00을 가지고 가려고해야합니까?
단지 정보 목적 일 뿐인가요? 다른 키에 조인하는 두 개의 유사한 쿼리가 있지만 SQL ER 구조 및 비즈니스 논리를 기반으로 동일한 행과 값을 생성한다고 가정 해보십시오. 한 쿼리는 모든 조인에 대해 100.00을보고하고 다른 쿼리는 조인 중 하나에 대해 43.61, 다른 조인에 대해 100.00을 말합니다. 이 번호로 배울 점은 무엇입니까?
예 : 또한
+-------------+-------+--------+---------+---------+------+----------+
| select_type | table | type | key | key_len | rows | filtered |
+-------------+-------+--------+---------+---------+------+----------+
| PRIMARY | job | range | status | 122 | 512 | 100.00 |
| PRIMARY | user | eq_ref | PRIMARY | 4 | 1 | 100.00 |
| PRIMARY | item | eq_ref | PRIMARY | 4 | 1 | -> 43.61 | <--
+-------------+-------+--------+---------+---------+------+----------+
우리는 함께 작동하도록 쿼리가없는
https://dba.stackexchange.com/a/164360
완전히베이스가 아닐 수 있지만 'filtered'값이 좋음/나쁨의 한정자이지만 단순히 쿼리가 수행하는 것의 추가 측정 항목 일뿐입니다. –
'필터링 된'은 100-43.61 = 56.39 % 행을 "버렸다"는 것을 의미하는 것으로 이해한다면, 논리가 무엇이든간에 56.39 %의 행을 검토하지 않았 음을 의미합니다. 이 경우 더 효율적인 행을 찾기 위해 데이터베이스에 적은 행을 조사하길 원합니다. 100.00은 "모든 행을 살펴 봐야"하고 "필터"하거나 버릴 수 없음을 의미합니다. 아마도? – Dennis
나는 그것이'WHERE' 조건 때문이라고 생각하기 시작했다. 질의는'WHERE' 절을보고 일치하지 않는 행을 버린다. 나는 그것이 적용되지 않는 행들을 걸러내는 것을 의미한다고 생각한다. 그래서 43.61은'WHERE' 절에 근거하여 많은 행을 백분율로 버렸음을 의미 할 수 있습니다. 다시, 어쩌면. – Dennis