전체 테이블 스캔이란 무엇입니까?
전체 테이블 스캔은 데이터베이스를 스캔하는 가장 느리지 만 가장 철저한 방법 중 하나입니다. 이 검색 방법이 너무 느린 이유는 데이터베이스가 모든 행을 읽고 관리자가 부과 한 쿼리 또는 조건에 대해 하나 이상의 열이 유효한지 확인하기 때문입니다. 전체 테이블 스캔의 가장 일반적인 트리거는 데이터베이스에 쿼리를 시작할 수있는 인덱스 행이 포함되어 있지 않다는 것입니다. 하나의 행을 찾는 경우 일반적으로 테이블을 수동으로 스캔하는 것이 좋지만, 더 많은 테이블을 찾거나 큰 테이블을 찾는 경우 전체 테이블 스캔이 더 잘 작동합니다.
데이터베이스에는 정보를 찾거나 조건을 충족 할 수 있는지 확인하기 위해 테이블을 살펴 보는 스캔 기능이 있습니다. 전체 테이블 스캔은 조건과 일치하는 행을 찾더라도 나머지 행을 계속 스캔하므로 가장 철저한 스캔입니다. 이 기능은 비용이 많이 들기 때문에 스캔이 각 행을 읽고 쓰며 행을 철저히 검사하기 위해 여러 번의 탐색을 수행하기 때문에 많은 양의 메모리를 사용합니다. 쿼리 또는 기능이 수행되지만 데이터베이스에 쿼리를 실행할 인덱스가 표시되지 않으면 전체 스캔이 필요합니다.
색인은 관리자의 환경 설정에 따라 테이블에 대한 정보를 색인화하는 테이블의 열입니다. 예를 들어, 관리자가 이름에 대한 정보를 색인화하려는 경우 색인 열은 각 이름의 위치를 기록합니다. 이를 통해 관리자와 데이터베이스 모두 데이터베이스에 숨겨진 정보를 찾을 수 있습니다. 테이블에 인덱스가 없으면 일반적으로 전체 테이블 스캔이 자동으로 시작되어 쿼리를 실행할 수 있습니다.
전체 테이블 스캔에 너무 많은 메모리가 할당되며 전체 스캔이 매우 느리도록 철저합니다. 관리자가 쿼리에 하나 또는 몇 개의 행만 필요한 경우 일반적으로 작은 인덱스를 작성하는 것이 더 빠릅니다. 이것이 사실이지만 쿼리가 크면 전체 스캔이 실제로 더 빠르게 작동 할 수 있습니다. 관리자가 전체 데이터베이스의 5 % 이상에 영향을 미치는 쿼리를 작성하는 경우 전체 스캔은 일반적으로 관리자가 동일한 작업을 수동으로 수행하는 것보다 기능을 더 빨리 수행 할 수 있습니다.
관리자는 종종 "EXPLAIN PLAN"기능을 사용하여 테이블을 빠르게 스캔합니다. 쿼리에 인덱스가 필요한지 관리자에게 표시합니다. 관리자는 결과를 가져 와서 쿼리를 그대로 실행할 수 있는지, 인덱스를 만들거나 검색해야하는지 또는 전체 테이블 스캔을 수행하는 것이 효율적인지 알 수 있습니다.