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