테스트 사이트 - 개발 중인 베타 버전입니다

$sql2 = " select * from {$g5['g5_shop_item_table']} where it_name like '%$name%'" 채택완료

주니1 10년 전 조회 2,616

$sql2 = " select * from {$g5['g5_shop_item_table']} where   it_name like '%$name%'" 

$sql2 = " select * from {$g5['g5_shop_item_table']} where   it_name like '$name%'"

 

차이점이 무엇인가요?

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
p
10년 전

위에 구문은 index 를 타지 않고 full scan 을 하게되며

아래 구문은 index 를 탑니다. 

검색조건에서는 가급적이면 '$name%'"​ 로 사용하는게 좋습니다.

 (와일드 카드를 양쪽에 써야 하는 이슈가 있다면 최대한 인덱스를 타도록 조건을 바꿔주는게 좋습니다.)

 

http://stackoverflow.com/questions/2081998/optimization-of-mysql-search-using-like-and-wildcards">http://stackoverflow.com/questions/2081998/optimization-of-mysql-search-using-like-and-wildcards 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

'$name%'​ 은 $name 변수가 앞 부분부터 일치하는 경우에만 검색되고, 

'%$name%'​ 은 $name 변수의 위치에 관계 없이 변수가 있기만 하면 검색됩니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인