성능 비교: INSTR 및 LIKE
'varchar' 유형의 MySQL 열 내에서 문자열을 검색하는 경우 ' text', 'blob' 등 어떤 방법이 더 효율적인지: INSTR(columnname, 'mystring') > 0 또는 열 이름 LIKE '%mystring%'?
답변
FULLTEXT 검색이 최고의 성능을 제공합니다. 그러나 INSTR과 LIKE를 비교할 때 두 방법 모두 일반적인 비인덱싱된 전체 테이블 스캔에서 동일하게 수행됩니다.
상세 비교
저자 INSTR이 실시한 테스트에서 및 LIKE가 동일하게 수행되었습니다. 그러나 접미사 와일드카드(예: 열 이름 LIKE 'search%')만 포함된 LIKE를 사용하여 인덱싱된 열에 대해 접두사 검색을 수행하면 INSTR보다 성능이 훨씬 뛰어납니다.
구현
INSTR과 LIKE는 모두 왼쪽에서 오른쪽으로 열을 스캔하여 검색 문자열을 저장된 데이터와 비교합니다. INSTR은 정확한 일치를 검색하고 LIKE는 부분 일치에 와일드카드 문자(% 및 _)를 허용합니다.
권장사항
접두사 일치가 필요하지 않은 인덱스 열의 경우, INSTR과 LIKE는 모두 비슷한 성능을 지닌 실행 가능한 옵션입니다. 하지만 인덱싱되지 않은 테이블을 처리하거나 접미사만 검색할 때는 더 빠른 결과를 위해 접미사 와일드카드를 사용한 LIKE를 사용하는 것이 좋습니다.
위 내용은 MySQL의 INSTR과 LIKE: 문자열 검색에 어느 것이 더 효율적인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!