개발 Q&A

제목 웹 페이지 로딩 속도가 너무나 느립니다.
카테고리 PHP
글쓴이 layman 작성시각 2017/06/23 12:56:40
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 11085   RSS

쿼리는 아주 단순합니다.

SELECT * FROM COD_MAKER ORDER BY MAKER ASC;

딸랑 이거입니다.

 

그런데 쿼리 결과가 2700 rows 입니다.

 

view에서는

<?php foreach($maker as $key => $value):?>
   <tr>
      <td class="first txt_center">
         <input type="checkbox" id="" name="MAKER_ID[]" value="<?=$value['MAKER_ID'];?>" maker_id="<?=$value['MAKER_ID'];?>" class="maker_set_checkbox row_checkbox" checked="checked"/>
      </td>
	  <td><?=$value['MAKERCODE'];?></td>
	  <td><?=$value['MAKER'];?></td>
   </tr>
<?php endforeach;?>

 

고작 이거 전부에요.

테이블 로우가 2700개로 많다보니 걸리는 시간이 당연히 오래걸리는게 맞나요?

무려 21초나 걸립니다.. ㅠㅠ

DB에서 조회하는 시간은 별로 안걸리는데 아마 DOM그리는데 오래걸리는거같아요..

 

 

개선 방법이 있을까요?

 

페이징으로 하면 안되는 화면이라서 이렇게 했습니다.. 도움 구합니다..

 다음글 업로드한 이미지를 웹페이지에서 보여줄려면 업로드 클래스... (1)
 이전글 네임서버 변경 질문입니다. (7)

댓글

배강민 / 2017/06/23 14:08:12 / 추천 0
스크롤로 붙는 페이징는 어떨까요
람이 / 2017/06/23 14:13:06 / 추천 0

제 경험상 맞는 답은 아닐지 모르지만, 속도가 느린 경우는 DB에서 쿼리나 INDEX, KEY 값을 지정하지 않았거나 그런 경우들이 많았습니다.

mysql 이시라면 select * 구분 앞에 explain 하셔서 key관련 된 사항에 * 인지 키가 지정 되었는지 등을 통해 속도를 확실히 개선할 수 있을 것으로 보입니다.

layman / 2017/06/23 14:18:47 / 추천 0

배강민 / 그것도 안되는 것이 2700개 모든 체크박스가 체크된 상태여야해서.. 바로 검색 버튼을 눌렀을 때, 체크된 값들이 모두 보내져야해서 애초에 다 화면에 그려져 있어야 해요ㅜㅜ

스크롤로 페이징하면 끝까지 내리지 않는 이상, 일부만 나오기 때문에.. 안될거같아요.

layman / 2017/06/23 15:02:22 / 추천 0

람이 / 감사합니다.

해당 테이블에서 필요한 컬럼을 꼭 $this->db->select();로 명시해주세요!!

전체 필드가 8개정도밖에 안되지만

$this->db->select('M.MAKER_ID, M.MAKER, M.MAKERCODE'); 

이 코드가 있고 없고 차이가 엄~청 나네요!!!!! 신기합니다..

참고하세요^^