MySQL8 이상에서는 Function Based Index를 지원한다.
Function Based Index 생성 시 주의할 점은 괄호를 묶어주어야 한다는 것이다.
예제 1) 테이블 생성 시 FBI 생성
CREATE TABLE tbl (
col1 LONGTEXT,
INDEX idx1 ((SUBSTRING(col1, 1, 10)))
);
SELECT * FROM tbl WHERE SUBSTRING(col1, 1, 9) = '123456789';
SELECT * FROM tbl WHERE SUBSTRING(col1, 1, 10) = '1234567890';
예제 2) FBI 인덱스 생성
Create index fbi_index on animals((CONCAT (grp , name)));