>데이터 베이스 >MySQL 튜토리얼 >MySQL에서 함수 기반 인덱스의 효과를 어떻게 얻을 수 있습니까?

MySQL에서 함수 기반 인덱스의 효과를 어떻게 얻을 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-21 11:20:12971검색

How Can I Achieve the Effect of Function-Based Indexes in MySQL?

MySQL의 함수 기반 인덱스

Oracle과 달리 MySQL은 본질적으로 함수 기반 인덱스를 지원하지 않습니다. 그러나 고려해야 할 대안이 있습니다.

열의 선행 부분

MySQL에서는 다음 구문을 사용하여 열의 선행 부분을 인덱싱할 수 있습니다.

create index name_first_five on cust_table (name(5));

"이름"의 처음 5자를 사용하여 색인을 생성합니다.

트리거 및 추가 열

더 복잡한 함수의 경우 인덱싱된 데이터로 별도의 열을 생성하고 삽입/업데이트 트리거를 사용하여 올바른 채우기를 보장할 수 있습니다. .

고려 열의 하위 문자열을 인덱싱하려는 시나리오입니다. 다음과 같이 새 열을 생성하고 트리거를 사용할 수 있습니다.

ALTER TABLE cust_table ADD COLUMN substring VARCHAR(255);

CREATE TRIGGER update_substring
AFTER INSERT OR UPDATE ON cust_table
FOR EACH ROW
SET NEW.substring = SUBSTRING(NEW.id, 1, 8);

기능 인덱스와의 비교

이 접근 방식은 기능 인덱스와 유사한 효과를 달성하지만, 추가 데이터 중복. 그러나 더 복잡한 기능을 정의하고 트리거를 통해 데이터 일관성을 보장할 수도 있습니다.

위 내용은 MySQL에서 함수 기반 인덱스의 효과를 어떻게 얻을 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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