모든 테이블에 대해 각 열의 선택성을 찾기 위해 스크립트를 만들었습니다. 100 행 미만의 일부 테이블에서는 열의 선택성이 50 % 이상입니다. 선택도 = 고유 값/총 수 행. 해당 열은 색인에 적합합니까? 또는 인덱스를 만들 때 행 수에 대한 최소 요구 사항을 알려주시겠습니까?인덱스를 만드는 데 필요한 최소 행 수는 얼마입니까?
답변
당신이 할 수있는 어떤 컬럼에 인덱스 - 문제는 ....이 어떤 의미가 있는지 여부 및 그 인덱스를 사용할지 여부를 일반적으로
, 작동 할 수 있습니다 미만 1~5%의 선택입니다 -이 작은 그 비율은 더 좋습니다. 가장 좋은 것은 많은 인구 중 단일 값입니다 (예 : 수십만 개의 단일 고객 ID - 이러한 인덱스가 반드시 사용됩니다.
매우 제한된 수의 값만있는 성별 (2 개 값만) 또는 다른 것들은 일반적으로 색인에서 제대로 작동하지 않습니다. 적어도 독자적으로이 열은 다른 색인에 두 번째 또는 세 번째 열로 포함될 수 있습니다.
그러나 인덱스가
- 측정하는 쿼리 수 있는지 여부를 정말 유일한 방법은 밖으로 찾을 수 , 그들의 타이밍을 측정하십시오.
인덱스가 사용되거나 무시되는 규칙은 없습니다. 너무 많은 변수가 그 결정에 사용됩니다. 인덱스를 처리하는 방법에 대한 몇 가지 전문적인 조언을
, 그리고 사용되지 수있는 인덱스를 찾는 방법, 그리고 그것을 인덱스를 생성하는 것이 합리적 때, 킴벌리 트립의 블로그 게시물을 참조하십시오
IMHO, DBMS가 서버에서 실행중인 경우 5000 행 미만의 테이블은 카디널리티를 분석 할 가치가 없습니다.
대부분의 DBMS는 데이터 및 코드 (저장 프로 시저, 실행 계획 등)에 캐시을 사용합니다. SQL 서버에서 나는 및 프로 시저 캐시데이터라고 생각하고, 오라클, 그것은 버퍼 캐시과 SGA라고. 표 데이터 및/또는 색인은 캐시에있을 수 있습니다.
자주 액세스되는 작은 테이블은 캐시에 들어갈 가능성이 큽니다. 그러나 쿼리가 디스크에서 새로운 데이터를로드하는 경우 테이블은 캐시에서 제거 될 수 있습니다. 테이블에 이 영구적으로 캐시에 저장되도록 지정하는 옵션은입니다 (PINTABLE 참조).테이블이 아주 작은 경우 색인을 사용하는 것이 더 나은 전략 일 수 있습니다 (귀하의 경우). 색인을 추가하면 (캐시에 항상있을 수도 있음) 더 도움이 될 수 있지만, 무엇이 이득이 될지 모르겠습니다.
성능면에서 큰 차이점은 디스크 액세스 대 메모리 액세스입니다. 인덱스의 목적은 디스크에서 읽을 데이터의 양을 줄이는 것이지만, 이미 메모리에 있다면 이득이 적을 수 있습니다.
- 1. 레일 앱에 필요한 최소 파일 수는 얼마입니까?
- 2. Linux에서 프로그램을로드하는 데 필요한 파일 수는 얼마입니까?
- 3. Direct3D9 장치를 만드는 데 필요한 최소 코드
- 4. TCP 연결을 설정하는 데 필요한 TCP 세그먼트 수는 얼마입니까?
- 5. OpenGL ES에서 큐브를 그리는 데 필요한 꼭지점 수는 얼마입니까?
- 6. 프로그래머 당 최소 테스터 수는 얼마입니까?
- 7. 2 비트 오류를 모두 해결하는 데 필요한 최소 비트 수는 얼마입니까?
- 8. 32 바이트 주소 지정에 필요한 비트 수는 얼마입니까?
- 9. (동적) 링크를 수행하는 데 필요한 최소 정보량?
- 10. Android에 SharedPreference를 저장하는 데 필요한 공간은 얼마입니까?
- 11. 애플릿을 실행하는 데 필요한 최소 Java 버전
- 12. mySQL : 성능에 영향을 미치기 전에 테이블의 행 수는 얼마입니까?
- 13. 하나의 SQL Server 테이블에 저장할 수있는 최대 행 수는 얼마입니까?
- 14. 최대 웹 메소드 수는 얼마입니까?
- 15. GAE 인스턴스의 사용자 수는 얼마입니까?
- 16. 초당 게임 업데이트 수는 얼마입니까?
- 17. luhn 알고리즘이 작동하는 최소 길이는 얼마입니까?
- 18. Numpy 최소 (행, 열) 형식
- 19. 브라우저에서 최대 동시 파일 다운로드 수는 얼마입니까?
- 20. jProfiler가 크기 X의 힙 덤프를 분석하는 데 필요한 메모리는 얼마입니까?
- 21. JDOM이 XML 파일을 생성하는 데 필요한 "오버 헤드"메모리는 얼마입니까?
- 22. 편집 된 버전과 편집되지 않은 버전이 완전히 다른 두 개의 제품으로 간주되기 위해 msi 파일에 필요한 최소 편집 수는 얼마입니까?
- 23. 페이지에 넣을 요소 ID의 최대 수는 얼마입니까?
- 24. SQL : 열 수는 행
- 25. 이러한 Java2D 모양을 만드는 데 필요한 기술
- 26. OpenMQ에서 대기열로 보낸 최대 메시지 수는 얼마입니까?
- 27. 연결 풀링에 필요한 연결 수는 어떻게 결정합니까?
- 28. jQuery로 전체 항목을 표시하는 데 필요한 최소 너비를 찾으십니까?
- 29. 원격으로 Windows 서비스를 설치하는 데 필요한 최소 권한
- 30. Windows 서비스를 도메인 계정으로 실행하는 데 필요한 최소 권한
나는 3 개의 interger 값을 가진 테이블을 가지고 있으며 모두가 독점적입니다. 그 선택성은 95 % 이상입니다. 그리고이 테이블은 대부분 select 문에서만 사용됩니다. 그렇다면 인덱스를 작성하는 것이 쉽지 않을까요? – Paresh
95 %의 선택적 의미? 일반적으로 매우 낮은 선택성이 필요합니다. 하나의 값 (ID = 55)은 최소의 행만 선택하면됩니다. 해당 시나리오의 선택률 (필드의 주어진 값에 대해 선택되는 총 행 수의 백분율)이 1 % 미만인 경우에도 5 % 미만이거나 그 이상인 경우 인덱스를 만드는 것이 좋습니다. –
"성별과 같은 것 (2 가지 값만 있습니다)"이 이제 2018이므로이 부분은 오래된 것입니다. 성별은 VARCHAR (255)이어야합니다. 개인적으로 아파치 공격 헬리콥터로 확인합니다. –