index 컬럼 2개를 조합한 조회조건 개선 문의 0 2 4,848

by 이명훈 [2024.07.11 10:43:41]


index 컬럼 a랑 b가 있는 테이블x가 있습니다.

 x테이블을 이용해서 view테이블를 만들엇는데

a||b 를 붙혀서 c라는 ailas를 설정했습니다

 

이때 view테이블 조회조건으로 c가 들어갈때 index가 안 먹히는거같은데 방법이 없을까요??

by 마농 [2024.07.11 16:07:24]

일단 컬럼을 가공하여 조건을 주고 있으므로 인덱스 사용 못합니다.
함수기반 인덱스를 추가로 만들면 인덱스 탈 수도 있습니다.
기존 쿼리를 개선할 수 있는 방안이 있는지 검토도 필요하구요.
뷰 쿼리와 사용 쿼리를 보여주세요.


by 알칸펠 [2024.07.16 17:15:20]

DB가 어느 것인지는 모르겠지만

MYSQL이라면 FULLTEXT INDEX, MATCH() AGAINST()으로 INDEX를 태울 수 있습니다. 제한적이지만요 

예)

SELECT * FROM Fulltext_TABLE
WHERE MATCH(a컬럼 + b컬럼) AGAINST('검색어' IN BOOLEAN MODE);

이렇게 가능합니다. 

A컬럼과 B컬럼에 INDEX가 없어도 가능은 합니다. 

https://inpa.tistory.com/entry/MYSQL-%F0%9F%93%9A-%ED%92%80%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%9D%B8%EB%8D%B1%EC%8A%A4Full-Text-Index-%EC%82%AC%EC%9A%A9%EB%B2%95

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입