2014-05-13 2 views
1

나는 수백만 개의 레코드가있는 테이블을 가지고 있습니다. 동일한 테이블에 몇 가지 새로운 쿼리를 작성했습니다. 쿼리 중 하나를 작성하는 동안 성능을 향상시키기 위해 테이블의 열에 인덱스를 만들어야한다는 것을 알게되었습니다.오랫동안 존재했던 테이블에 대한 인덱스 만들기

제 질문은 새 색인이 지금 작성되면 내 성능이 향상 될 수 있습니까? 색인을 이해하면 데이터 삽입 중에 색인이 데이터를 정렬하는 데 도움이된다는 것입니다. 따라서 이미 테이블에 많은 양의 데이터가있는 경우 해당 데이터가 인덱싱되지 않고 새로운 데이터 만 인덱싱됩니까?

+0

기존 테이블 구조와 실행할 쿼리를 제공해야합니다. 인덱스를 추가하는 것만으로는 성능이 향상되지 않으며 실행중인 쿼리에 따라 다릅니다. –

+0

Abhik, [STACK-OVERFLOW]에 대한 설명 (http://stackoverflow.com/questions/23611459/sql-function-calls-ignored-with-having-clause/23611545?noredirect=1#23611545)을 참조하십시오. 인덱스를 만들 필요성에 대해 이 쿼리는 토론에서도 언급됩니다. –

+1

아니요, 기존의 모든 행은 색인 작성 중에 색인됩니다. –

답변

1

통계가 업데이트되면 즉각적으로 적용될 수 있지만 (적절한/적절한 색인 인 경우) 더 나은 실적을 제공합니다.

UPDATE STATISTICS <table>.<column> ESTIMATE SAMPLE 20 PERCENT 
+0

"ANALYZE TABLE"을 사용하여 엔진의 경로를 최적화하는 방법에 대한 언급도 있습니다. –

관련 문제