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

sql 질문 채택완료

웹프리죤 4년 전 조회 2,130

$sql = " select * from {$g5['g5_shop_item_table']} where it_use = 1"; $result = sql_query($sql);

while( $list[] = mysqli_fetch_assoc($result) );

 

트래픽 초과를 일으키는 페이지 sql 구문이라는데

혹시 어디가 트래픽초과를 일으킬 문제 인가요?

 

mysqli_fetch_assoc 인가요? 상품은 100개 정도 이고 조건 검색을 하면 조건에 맞는 상품 몇개 나오는

정도 인데 트래픽 초과를 유발한다네요

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

답변 2개

채택된 답변
+20 포인트
플래토
4년 전

selec * from {$g5['g5_shop_item_table']} where it_use = 1

이건 사용하는 모든상품을 

모든정보를 다가져와서

$list에 담는 기능인데

 

결국 메모리에 $list를 배열변수로 만들어서

어딘가로 전송할때

테이블 전체의 데이타를 다 던지는 효과가 있습니다.

실제화면상에서는 사용할게 몇개 안될수있지만

화면에 출력하기전에

 

print_r2($list);

를 찍어보시면 어느정도 양이 되는지 실감하실겁니다.

 

item에는 text 필드와 이미지경로들이 기본적으로 들어가는데

text필드가 한두개가 아니죠

text필드의 기본사이즈가 65000 바이트가 넘으니

그것의 모든테이블(약 100개정도라고 해도 65000*100인데 컬럼수가 여러개면 * 컬럼수가 증가됩니다.

 

실제로 사용할 컬럼으로 다시 추출하시는게 맞습니다.

 

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

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

T
4년 전

while문에서 트래픽초과되지 않을까요? 무한반복문에 빠질수도잇는문제라..

while문이나 for문 잘못 구현하면 사이트 뻗어버리는 경우가 있습니다.

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

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

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

로그인