채택완료

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

2015-05-28 (목) 16:41:23 2,770

$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 포인트

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

아래 구문은 index 를 탑니다. 

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

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

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

2015-05-28 (목) 16:55:36

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

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

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