이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19085|회답: 2

[출처] SQL 서버가 인덱스를 생성합니다

[링크 복사]
게시됨 2019. 9. 20. 오전 9:31:08 | | |
색인 개념

인덱스 설정의 목적은 데이터베이스 시스템의 성능을 향상시키고, 데이터의 쿼리 속도를 높이며, 시스템의 응답 시간을 단축하는 데 있습니다.
색인이란 무엇인가요: 데이터베이스 내 색인은 책의 목차와 비슷하여, 책 전체를 읽지 않고도 원하는 정보를 빠르게 찾을 수 있습니다.
데이터베이스에서는 데이터베이스 프로그램이 전체 테이블을 스캔하지 않고도 테이블의 데이터를 빠르게 쿼리하기 위해 인덱스를 사용합니다.
책의 목차는 단어와 그 단어들이 위치한 페이지 번호의 목록이며, 데이터베이스의 인덱스는 테이블 내 값들의 목록과 각 값이 저장된 곳입니다.
인덱싱의 장단점: 쿼리 실행 오버헤드의 대부분은 I/O이며, 인덱스를 성능 향상에 사용하는 주요 목표 중 하나는 전체 테이블 스캔을 피하는 것입니다. 전체 테이블 스캔은 디스크에서 테이블의 모든 데이터 페이지를 읽어야 하고, 인덱스가 데이터 값을 가리키면 쿼리가 디스크에 몇 번만 읽으면 되기 때문입니다.
따라서 인덱스의 합리적인 사용은 데이터 쿼리를 빠르게 할 수 있습니다. 하지만 인덱스가 항상 시스템 성능을 향상시키는 것은 아니며, 인덱스된 테이블은 데이터베이스 내 저장 공간을 더 많이 차지해야 하고, 동일한 데이터 수정 및 삭제 명령어가 인덱스 실행과 유지 관리에 더 오래 걸립니다.
따라서 지수를 합리적으로 사용하고 최적이 아닌 지수를 제거하기 위해 적절한 시기에 업데이트해야 합니다.

지수 분류

색인은 중국어 사전 앞의 목차와 비슷하며, 병음이나 대문자 순으로 원하는 단어를 빠르게 찾을 수 있습니다.
고유성: 각 행의 인덱스 값은 고유하며(고유 제약 조건이 생성되고 시스템이 자동으로 고유 인덱스를 생성합니다).
기본 키 인덱스: 테이블이 생성될 때 지정된 기본 키 열은 자동으로 기본 키 인덱스를 생성하며 고유한 특성을 가집니다.
클러스터: 클러스터 인덱스는 사전의 병음 조회를 사용하는 것과 동등한데, 클러스터 인덱스는 물리적으로 연속적인 기록을 저장하기 때문입니다. 즉, 병음 a 뒤에 b가 따라야 합니다.
비클러스터: 비클러스터 인덱스는 사전 급수를 사용해 조회하는 것과 동등하며, 비클러스터 인덱스는 논리적으로 연속적이며, 물리적 저장은 연속적이지 않습니다.
클러스터 인덱스는 테이블에 하나의 테이블만 가질 수 있지만, 클러스터가 아닌 인덱스는 테이블에 여러 개의 테이블을 가질 수 있습니다.

어떤 필드를 인덱싱해야 하는지

1. 테이블의 기본 키와 외래 키는 인덱스를 가져야 합니다
2. 300개 이상의 데이터를 가진 테이블에는 인덱스가 있어야 합니다
3. 자주 다른 테이블과 연결된 테이블은 연결된 필드에 인덱스를 부여해야 합니다
4. 특히 큰 표에서 자주 나타나는 필드는 인덱싱되어야 합니다
5. 자주 정렬되거나 그룹화되는 필드(예: GROUP BY 또는 ORDER BY 연산을 수행)는 인덱싱되어야 합니다
6. 색인은 매우 선별적인 분야를 기반으로 만들어야 합니다
7. 인덱스는 큰 텍스트 필드나 초장필드의 경우 작은 필드에 구축되어야 하며, 인덱스를 만들지 말고 정수를 키 값으로 사용해야 합니다. 정수가 가장 빠른 접근 속도를 가지기 때문입니다
8. 복합 지수의 수립은 신중하게 분석되어야 하며; 대신 단일 필드 인덱스를 사용하는 것을 고려해 보세요
9. 자주 데이터 조작을 수행하는 테이블은 너무 많이 인덱싱하지 않아야 합니다
10. 실행 계획에 부정적인 영향을 주지 않도록 쓸모없는 인덱스를 삭제합니다

지수가 너무 많다는 단점

1. 저장 공간이 커지며, 각 인덱스는 공간에 저장되어야 합니다
2. 비군집 인덱스가 많다면, 군집 인덱스가 변하면 모든 비군집 인덱스도 그에 맞게 변한다
3. 인덱스가 너무 많으면 최적화 과정에서 평가해야 할 조합 수가 증가하여 쿼리 시간이 증가합니다
4. 각 인덱스는 통계 정보를 가지며, 인덱스가 많을수록 통계 정보가 많아 쿼리 시간이 늘어납니다
5. 업데이트 오버헤드: 데이터가 변경되고 많은 열이 변경되면 여러 인덱스가 변경되어 업데이트, 삭제, 삽입이 느려질 수 있습니다








이전의:10대 강렬한 반주 MV 영상
다음:C#은 현재 시스템 디스크 문자, 시스템 디렉터리, 데스크톱 등을 받습니다
 집주인| 게시됨 2020. 12. 27. 오전 11:56:05 |
CREATE INDEX PersonIndex ON 테이블 이름 (필드 이름)

테이블 이름에 대한 DROP INDEX PersonIndex
 집주인| 게시됨 2021. 2. 24. 오후 3:16:27 |
Itsvse 테이블 테스트 필드에 인덱스가 없으면 추가됩니다

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com