2011-05-06 3 views
2

mysql에 자동으로 연결되는 자동로드에 데이터베이스 클래스를로드합니다. 쿼리가 없으면 여전히 연결이 생성됩니다.CodeIgniter - 실행할 쿼리가있는 경우에만 데이터베이스에 연결

성능 향상을 위해 쿼리가 실행 된 경우에만 mysql에 연결하려고합니다.

이것을 달성하는 가장 좋은 방법은 무엇입니까?

데이터베이스가 연결되었는지 여부를 감지하는 모든 쿼리가 실행되는 모델 함수를 작성하고 $this->db->query()을 실행하기 전에 간단히 $this->load->database()을 호출하려고합니다.

문제는 내 코드에서 내 모든 $this->db->query() 참조를 변경해야한다는 것입니다.

이상적으로 이것을 지원하기 위해 $this->db->query() 함수를 확장하고 싶습니다.

아이디어가 있으십니까? 인스턴스화 할 때 첫 번째 쿼리가 발생했을 때

+0

를 참조하십시오. 또는 캐싱을 많이 사용하는 경우 – JohnP

+1

DB에 연결되어있는 동안 어떤 이점이 있는지 확실하지 않으면 어쨌든 사용하면 활성 상태가됩니다. html, url 및 기타 라이브러리를 자동로드하는 것과 같습니다. 그들은 사용하라는 요구가있을 때까지 성능에 영향을주지 않습니다. – Brad

답변

3

당신은이 (서버에 접속을 포함하는) 초기화되지 당신에게 데이터베이스 클래스의 원인이됩니다

$db['mydb']['autoinit'] = false; 

데이터베이스 설정의 autoinit 속성을 수정할 수 있습니다, 대신 일어날 것입니다 .

당신은 DB 쿼리를 필요로하지 않는 많은 페이지가 경우에만 유용 할 것이다 the database configuration page