CI 묻고 답하기

제목 Active Record 의 리소스에 관한 질문하나 드리고싶어서 왔습니다 ㅎ
카테고리 CI 2, 3
글쓴이 오민 작성시각 2019/06/14 15:28:43
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 10607   RSS

Active Record 는 $this-> db->select(*); 이 런식으로 쓰는게 유니코드로 변환되어 (escape) 안전하다고 들었는데 생각보다 

리소스가 많이 잡아먹는다고 들었어요.

 

$where_val []         = $where_value;

$sql  = "SELECT  * FROM temp_table";

$sql .= $where;         

$this->query($sql,$where_val );

그렇다면 이렇게 직접 쿼리를 이런식으로 리소스가 많이 줄게 될까요??

 

그럼 어느쪽이 지향해야될 방향인지 모르겠어서 여쭈어봅니다.

리소스가 먼저 인가 아니면 안정성이 우선인가 차이에 대한것인지 

 

아니면 무조건 active record를 사용하는 것이 맞는것인지 여쭈어봅니다. 

 다음글 CI 개발환경 구축방법(Git, Local, Dev서버... (2)
 이전글 MS Azure Storage를 접근하고 싶습니다. (1)

댓글

한대승(불의회상) / 2019/06/14 15:30:33 / 추천 1

php 날코딩보다 프레임워크가 리소스를 2~10배정도 더 먹습니다.

액티브레코드는 프레임워크의 일부이니 리소스는 고려하지 마세요.

오민 / 2019/06/14 15:35:43 / 추천 0

음 결국 프레이워크를 쓰는 한  $this-> db->select(*); 이것이나 

$sql = "select* from temp"

$this->query($sql,$query_value ); 이것의 리소스는 차이가 없다고 말씀 해주시는거죵? 감사합니다 ㅠ 그럼 계속 위에껄 써야겠네요 감사합니다!

 

 

엽토군 / 2019/06/15 21:14:53 / 추천 1
뒷날을 고려해서라도 가급적 읽을 수 있고 고칠 수 있는 쪽을 선택하세요. 막말로 PHP쪽 리소스 부하가 전혀 없어야 한다면 모든 로직을 DB프로시저로 옮기고 PHP는 그 프로시저만 때리는 날코딩으로 하면 됩니다만 그걸 원하지는 않으실거잖아요. ㅋㅋ
오민 / 2019/06/17 17:32:33 / 추천 0

네 ㅎㅎ 감사해용!

리소스 부하가 전혀 없다기보다는 둘의 차이를 알고싶었어요 당연히 선택은 사이트 성격 이나 혹은 저의 몫인데

고수분들께 조언을 여쭙고 싶어서요 ㅎㅎ

 

Active Record 를 사용할시 안에서 돌아가는 로직으로 인해 조금의 더 리소스가 있을까봐 생각해본거에용 근데 잘 생각 해보니 우문이네요 당연한게 아주 약간의 리소스를 얻고 안정성을 얻어오는거네요 두분의 말씀덕분에 많이 깨닫고갑니다 ㅎㅎ 감사해용!

kaido / 2019/06/17 17:57:22 / 추천 1

AR 사용과 Native SQL 사용시의 차이를 원론적으로 한번 생각해보시면 됩니다.

AR형태로 사용하든 SQL을 그냥 사용하든 DB 접속 하고 쿼리 날리는건 동일합니다.

차이는 PHP에서 메모리를 더 많이 잡고 있다 정도의 차이입니다.

더 빠르게 쿼리를 날리는 방법은 인프라 문제이지 프로그램상으로는 없습니다. 무거운 쿼리는 있어도 말이죠.

 

오히려 SQL 그냥 작성 하시면 반대로 프레임워크상에서의 서포트 되는 기능을 못받고 더 느려질수도 있습니다.

CI는 MYSQL의 캐싱을 동일하게 지원합니다.

동일한 쿼리가 날아가면 쿼리를 실행 하지 않고 가지고있는 오브젝트를 리턴합니다.

숙련된 고수가 아닌이상 세세히 전부 컨트롤 하기는 어렵기 때문에 프레임워크를 사용하는 것이죠.

 

느린 솔루션은 없습니다. 다만 유저가 느리게 만들뿐이죠.

변종원(웅파) / 2019/06/18 09:04:12 / 추천 1
느린 솔루션은 없습니다. 다만 유저가 느리게 만들뿐이죠. <- 명언입니다.
오민 / 2019/06/26 12:27:35 / 추천 0

위에분들 너무 감사합니다. 점점 더 눈이 떠지네요 ㅎㅎ