클러스터되지 않은 인덱스를 사용하여 작성된 주소 필드에서 클러스터되지 않은 인덱싱 계획을 사용할 쿼리를 작성하려고합니다. 내가 가지고있는 문제는 내가 거리 주소를 검색 할 때 'like'eval 함수를 사용할 가능성이 높다는 것입니다. 이 함수를 사용하면 인덱스를 사용하는 대신 테이블 스캔이 발생한다고 생각합니다. 나는이 경우에 어떻게 글을 쓸 것인가? address3 필드에 클러스터되지 않은 인덱스를 두는 것은 무의미한가요? 미리 감사드립니다.필드에있는 클러스터되지 않은 인덱싱을 사용하는 문자열 검색 쿼리는 어떻게 작성합니까?
답변
이론적으로 데이터베이스는 인덱스가 가장 좋은 인덱스를 사용합니다. 어떤 데이터베이스 서버를 사용하고 있습니까? 실제로 무엇을 성취하려고합니까? 그리고 당신의 LIKE 성명은 어떻게 될 것입니까? 예를 들어, 와일드 카드 문자가 사용되는 쿼리 계획과 다를 수 있습니다.
달성하려는 목표에 따라 데이터를 사전 처리하고 검색에 유용한 다른 열이나 인덱싱 된 뷰를 사용하는 다른 가능성이 있습니다.
Here's SQL Server 2005 및 varchar 필드에서 인덱스 사용에 대한 일부 설명.
LIKE식이 문자열 시작 검색 (Address LIKE 'Blah%'
)을 수행하는 경우 색인 검색을 통해 색인을 사용할 것으로 예상됩니다.
Address LIKE '%Blah%'
을 검색하면 쿼리에서 반환하는 필드 수와 인덱스의 선택도에 따라 테이블 스캔/인덱스 스캔이 발생합니다.
varchar 필드는 왼쪽에서 오른쪽으로 색인되어 있으며, 사전이나 백과 사전과 마찬가지로 색인이 생성됩니다.
필드가 시작된 항목을 알고 있다면 (예 : LIKE 'streetname %') 색인이 효율적입니다. 그러나 필드의 일부 (예 : LIKE '% something %%') 만 알면 색인을 사용할 수 없습니다.
LIKE를 사용하면 반드시 테이블 스캔을 사용할 필요는 없습니다. 검색하는 문자열에 따라 색인을 사용할 수 있습니다. (예를 들어 LIKE 'something %'는 일반적으로 인덱스를 사용할 수 있지만 LIKE '% something'은 그렇지 않을 수 있습니다. 서버가 적어도이 경우 인덱스 스캔을 수행 할 수는 있지만 더 비쌉니다. 스트레이트 인덱스 룩업이지만 전체 테이블 스캔보다 여전히 저렴합니다.) 좋은 기사 here은 SQL Server와 관련하여 LIKE와 인덱스에 대해 이야기합니다 (다른 DBMS가 분명히 다르게 구현할 것입니다).
- 1. 이 MySQL 쿼리는 어떻게 작성합니까?
- 2. 이 SQL 쿼리는 어떻게 작성합니까?
- 3. 이 쿼리는 어떻게 장고에 작성합니까?
- 4. 클러스터되지 않은 인덱스로 인덱스 액세스
- 5. 인덱싱을 사용하여 효율적인 단어 검색
- 6. SQL 서버에서 매개 변수화 된 XPath 쿼리는 어떻게 작성합니까?
- 7. 클러스터되지 않은 기본 키를 변경하는 방법은 무엇입니까?
- 8. 오라클의 인덱스, 클러스터 또는 클러스터되지 않은
- 9. 어떻게 파이썬에서 csv 파일에 문자열 목록을 작성합니까?
- 10. 두 SQL Server 테이블의 인덱스를 비교하는 쿼리는 어떻게 작성합니까?
- 11. 필드가 다른 쿼리의 결과 인 SQL 쿼리는 어떻게 작성합니까?
- 12. Subversion 저장소에 대한 사용자의 커밋을 모두 나열하는 쿼리는 어떻게 작성합니까?
- 13. 인덱싱을 사용하는 코어 데이터 백업 된 iITableView
- 14. 고유하지 않은 표의 html에서 문자열 검색
- 15. 경로 속성에서 인덱싱을 제외하려면 어떻게해야합니까?
- 16. 하위 문자열 검색 문자열
- 17. 비 기본 키 열의 클러스터형 인덱스 또는 클러스터되지 않은 인덱스?
- 18. 이 쿼리는 어떻게 최적화합니까?
- 19. 중국어 코드는 어떻게 작성합니까?
- 20. BJAM에서 규칙을 어떻게 작성합니까?
- 21. 양식을 어떻게 작성합니까?
- 22. OCR 프로그램은 어떻게 작성합니까?
- 23. Firefox Addon은 어떻게 작성합니까?
- 24. TwoLineListItem은 어떻게 작성합니까?
- 25. 어떻게 파스칼로 배열을 작성합니까?
- 26. 장고에서이 쿼리를 어떻게 작성합니까?
- 27. 읽을 수있는 URL은 어떻게 작성합니까?
- 28. 레일즈 쿼리는 어떻게 작동합니까?
- 29. PHP에서 인용 부호와 아포스트로피가 모두 포함 된 mySQL select 쿼리는 어떻게 작성합니까?
- 30. std :: codecvt 패싯은 어떻게 작성합니까?