>데이터 베이스 >MySQL 튜토리얼 >MySQL은 함수 기반 인덱싱을 지원합니까?

MySQL은 함수 기반 인덱싱을 지원합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-18 04:48:10952검색

Does MySQL Support Function-Based Indexing?

MySQL의 함수 기반 인덱싱

Oracle 데이터베이스에서는 하위 문자열 추출과 같은 함수 기반 데이터 인덱싱이 가능합니다. SUBSTRING(id,1,8)을 사용하는 열에서. 이 편리한 기능은 MySQL이 유사한 기능을 제공하는지에 대한 의문을 제기합니다.

MySQL의 접근 방식

MySQL은 전통적인 의미의 함수 기반 인덱싱을 지원하지 않습니다. 5.6을 포함한 최신 버전의 MySQL에도 이 기능이 부족합니다. 그러나 MySQL 8.0.13 이상과 같은 최신 릴리스에서는 기능적 인덱스를 도입하여 함수 및 표현식을 기반으로 한 유연한 인덱싱이 가능합니다.

이전 MySQL 버전에 대한 대안

8.0.13 이전의 MySQL 버전에는 함수 결과를 기반으로 한 인덱싱 옵션이 제한되어 있습니다. MySQL은 인덱싱을 위해 열의 선행 문자 사용을 지원하지만 더 복잡한 표현식을 처리하거나 특정 문자 위치에서 시작할 수는 없습니다.

이 제한 사항을 해결하려면 인덱싱 가능한 데이터가 포함된 별도의 열을 생성할 수 있습니다. 트리거를 사용하여 원래 열과의 동기화를 유지합니다. 데이터베이스 정규화 원칙을 엄격하게 준수하지는 않지만 트리거를 통해 데이터 동기화를 유지하여 유사한 효과를 얻습니다.

결론

MySQL은 직접 제공하지 않지만 함수 기반 인덱싱 지원, MySQL 8.0.13 이상의 기능 인덱스 도입은 이러한 요구에 대한 솔루션을 제공합니다. 이전 버전의 경우 트리거가 포함된 별도의 인덱스 열을 사용하면 함수 기반 인덱스의 기능을 에뮬레이트할 수 있습니다.

위 내용은 MySQL은 함수 기반 인덱싱을 지원합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.