MySQL의 FIND_IN_SET 함수는 인덱스를 활용하지 않아 쿼리 효율이 떨어지는 것으로 악명 높습니다. 그러나 쉼표로 구분된 목록을 처리할 때 원하는 인덱싱 동작을 달성하기 위한 대체 접근 방식이 있습니다.
제공된 답변에 설명된 기술은 매개 변수가 있는 준비된 문을 사용하는 것을 제안합니다. 쉼표로 구분된 목록 형식의 문자열을 허용합니다. 준비된 문에서 NULL이 아닌 키와 함께 범위 유형을 사용하면 IN 절을 실행할 때 인덱스가 사용됩니다.
예를 들어 다음 쿼리는 'id' 열:
explain select * from ratings where id in (2331425, 430364, 4557546, 2696638, 4510549, ...)
이 접근 방식을 사용하면 효율적인 색인 쿼리가 가능하지만 다음 사항을 고려하는 것이 중요합니다.
위 내용은 MySQL의 FIND_IN_SET 함수가 인덱스를 활용하도록 하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!