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 중국어 웹사이트의 기타 관련 기사를 참조하세요!