질문 Q #12026
CI 성능 관련 문의
정현주 2015-02-16 15:49:41
안녕하세요, 성능 관련해서 문의 드립니다.

CI를 이용해서 개발 중에 있는데요, 단순히 데이터를 조회해서 가져오는데 1초 이상 걸리고 있습니다.
CI 사용법이 잘못되어 성능에 문제가 있는건지 확인좀 부탁 드립니다.

일부 소스 공유 드립니다.

config폴더 내 파일도 첨부해서 공유 드렸습니다.

오랜 시간 해결을 못하고 있습니다. 고수님들의 조언 부탁 드립니다.

autoload.php

$autoload['libraries'] = array('database');

controller

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class ZdGroup extends CI_Controller {
 
 function __construct(){
  parent::__construct();
  session_start();
 }
 
 function getGroups(){
 
  $searchField = $_REQUEST['searchField'];
  $searchValue = $_REQUEST['searchValue'];
  
  $sql = "SELECT *
      FROM ZD01_GROUP_INFO
     WHERE $searchField LIKE CONCAT('%','$searchValue','%')
          ORDER BY CREATE_DATE DESC";
    
  $result = $this->db->query($sql)->result();
 
  echo json_encode($result);
 }
}

/* End of file zdGroup.php */
/* Location: ./application/controllers/zdGroup.php */
답변 6
#1 taegon 2015-02-16 16:44:06
프로파일러를 활성화 하셔서 쿼리 및 전반적인 속도에 대해서 확인해보시는 것이 좋을듯 합니다.
$this->output->enable_profiler(TRUE); 를 컨트롤러에 넣으시면 확인하실 수 있습니다.
#2 한대승(불의회상) 2015-02-16 17:12:44
데이터가 몇건 정도 되는지 모르겠지만 like 검색은 속도가 상당히 느리답니다.
taegon님 말씀대로 프로파일러를 활성화 시켜 확인 해보시고, 실제 만들어진 SQL문을 DB에서 실행 시켜보세요.
#3 ci세상 2015-02-17 06:23:35
이렇게 해야 인덱스 먹습니다.
WHERE $searchField LIKE '$searchValue%'

%~% / concat등의 펑션 / order by 와 같은 소팅정렬 / CREATE_DATE 디비타입등이 디비 부하 요소 같습니다.
#4 정현주 2015-02-17 13:08:28
답변 감사합니다.
뎅데이터 건수가 10건 정도 밖에 되지 않기 때문에 쿼리수행속도가 원인은 아닌것으로 생각됩니다.

ajax를 이용해서 서비스를 호출하고있는데요, ajax를 사용하는경우에는 $this->output->enable_profiler(TRUE); 이 구문을
어떻게 사용해야하는지 잘 모르겠네요;;

화면을 열면 아래와 같이 데이터를 조회하는 서비스에서 시간이 오래걸리고 있습니다.

#5 정현주 2015-02-17 13:11:03
#6 한대승(불의회상) 2015-02-17 13:22:38
ajax 콜에 해당하는 url을 클릭하시면 preview 에서 확인 가능 합니다.