> 데이터 베이스 > MySQL 튜토리얼 > MySQL은 함수 기반 인덱싱을 지원합니까? 그렇지 않은 경우 해결 방법은 무엇입니까?

MySQL은 함수 기반 인덱싱을 지원합니까? 그렇지 않은 경우 해결 방법은 무엇입니까?

DDD
풀어 주다: 2024-12-31 04:47:13
원래의
787명이 탐색했습니다.

Does MySQL Support Function-Based Indexing, and If Not, What Are the Workarounds?

MySQL이 함수 기반 인덱싱을 활용할 수 있나요?

MySQL은 Oracle과 달리 본질적으로 SUBSTRING(id)와 같은 함수 기반 인덱싱을 지원하지 않습니다. ,1,8). 그러나 이 기능을 달성하기 위한 다른 접근 방식이 있습니다.

선행 열 잘림 인덱싱

MySQL에서는 열의 선행 부분만 인덱싱할 수 있습니다. 예를 들어, 이름 열의 처음 5개 문자를 색인화하려면 다음을 사용할 수 있습니다.

CREATE INDEX name_first_five ON cust_table (name(5));
로그인 후 복사

함수 기반 색인화 해결 방법

더 복잡한 함수 기반의 경우 인덱싱을 수행하려면 인덱싱된 데이터로 추가 열을 만듭니다. 그런 다음 삽입/업데이트 트리거를 구현하여 원래 열과 인덱싱된 열 간의 데이터 일관성을 유지합니다. 이 접근 방식을 사용하면 인덱싱된 데이터가 최신 상태로 유지됩니다.

의미 및 고려 사항

이 해결 방법은 함수 기반 인덱싱을 에뮬레이트하지만 몇 가지 고려 사항이 있습니다.

  • 중복된 ​​데이터로 인해 공간이 낭비됩니다.
  • 트리거 3NF(제3정규형) 원칙을 위반합니다.

그러나 트리거 기반 접근 방식은 데이터 동기화를 유지하여 유사한 성능 이점을 제공함으로써 이를 완화합니다.

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿