소개 : 여기에 대해 많은 이야기가 있습니다. SQL의 복잡성으로 인해 누구나 사용자의 쿼리를 완벽하게 지원하는 것은 불가능합니다. 쿼리가 무엇인지, 테이블의 크기 , 그리고 사용되는 데이터베이스 시스템이 무엇인지에 대한 정보를 제공합니다. 색인이 무엇인지 또는 색인을 사용하는 방법을 모르면 여기를 참조하십시오 : How does database indexing work?.
주의 : 시스템에 DBA가있는 경우, 특히 라이브 시스템에서 아무것도 인덱싱하기 전에 확인하십시오. 당신이 그들에게 친절하다면 그들은 도울 수 있습니다. 시스템이 다른 많은 시스템에서 사용되는 경우 인덱스와 같은 것을 변경하기 전에주의하십시오. 데이터가 여러 쿼리 유형에 사용되는 경우 충돌하거나 겹치는 수많은 인덱스를 생성하지 않도록하십시오.
구문. 표준 (SQL92)은 CREATE INDEX [index name] ON [table name] ([column name])
을 사용합니다. 이 구문은 거의 모든 시스템에서 작동합니다. 테이블에 인덱스가 하나만 필요하고 클러스터 된 인덱스가없는 경우 다음을 사용할 수 있습니다. CREATE [Unique] Clustered INDEX [index name] ON [table name] ([column name])
- 동일한 값을 가진 여러 항목이있을 수없는 경우 고유해야합니다. 이 기능을 사용할 수 없으면이 게시물 (How do I index a database column)을 참조하십시오.
색인을 생성해야하는 테이블은 무엇입니까? 특히 데이터가 정적이거나 새 값만 가져 오는 쿼리에 사용되는 모든 테이블은 훌륭한 후보입니다. 테이블이 쿼리에 있고 조인 문이있는 경우 조인 할 열의 인덱스가 필요할 수 있습니다.
어떤 열을 색인화해야합니까? 최상의 인덱스를 선택하고 데이터베이스를 올바르게 인덱싱하는 방법에 대한 서적이 있습니다. 당신이 문제에 깊은 다이빙을하지 않으려면 색인을위한 엄지 손가락의 기본 규칙은 다음과 같습니다이 순서에 따라 인덱스 :
- 가입 조건 (
on Table1.columnA=Table2.ColumnA and Table1.columnB=Table2.ColumnQ
)
- 필터링 된 열 (
where Table1.columnN=’Bob’ and Table1.columnS<20
)
- 주문 가능한 그룹은 저자/등 (순서에 사용되는 모든 열은/그룹핑 인덱스이어야/별)
또한 :.
이 모든 작업을 수행합니다. 다음과 같은 구문을 사용할 수 있습니다, 당신은 당신의 방법에 잘있을 것이다. 을하지만 당신은 정기적으로 물건을 필요로하는 경우, 학습 책을 사서 온라인에서 정보를 찾을 수 있습니다. 거기에는 많은 정보가 있습니다. 주제가 깊지 만 자신이하는 일을 알고 있으면 질문을 많이 할 수 있습니다.
의견 또는 수정 사항/제안 된 수정 사항 및 추가 답변을 환영합니다. –
당신은 어떤 쿼리를 참조하고 있습니까? – swasheck
이것이 너무 일반적이라고 생각합니다. - 블로그 게시판 (답변과 함께 사용)과 같은 장소를 가질 수 있지만 다양한 전략에 대한 실행 계획을 보여주는 구체적인 예가 필요합니다. –