CI 묻고 답하기

제목 mysql에서 두개의 database를 사용할때
글쓴이 jake 작성시각 2013/10/10 20:18:51
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 15261   RSS
안녕하세요

codeigniter를 2년간 써왔던 유저입니다.

최근에 신규서비스 작업을 하면서 성격이 다른 두개의 mysql database를  만들게 되었는데요

코드이그나이터에서 default가 아닌 다른 database를 불러올때

$this->db_second = $this->load->database('second_database', TRUE); 

이런 명령어를 써주고 query 작업을 해줘야 하는 불편함이 있더군요..

그리고 그 밑에줄에서 default database를 부르려면 다시 default 를 불러야하는 단점도 있구요..



두개를 동시에 하나의 database처럼 쓸 수는 없는거게죠?

좀 불편해서 여러분에게 여쭤봅니다.
 다음글 저장 프로시저(stored procedure) 연동 질... (5)
 이전글 안드로이드 코드이그나이터 session 유지 (4)

댓글

letsgolee / 2013/10/10 22:24:39 / 추천 0
다중 database를 여는 것은 query문에서 지원되고 active_recode에서도 됩니다. 다만 백틱이 문제거리가 될 수 있습니다.

예를 든다면 database가 db_a와 db_b가 있고 각각에 table_a와 table_b가 있고 각 테이블에 title, name이 있다면 모델에서 다음과 같은 query 문이 가능합니다.

$query = $this->db->query("SELECT a.title, b.name FROM db_a.table_a as a, db_b.table_b as b where a.title = b.title");

따라서 default로 된 databasse에서도 사용자가 여러 데이터베이스에 접근 권한만 있다면 쿼리를 보내는 것은 어려운 일이 아닙니다.
jake / 2013/10/11 13:35:06 / 추천 0
 감사합니다. 말씀하신대로 해보니 잘 되더군요 ㅎ
들국화 / 2013/10/11 14:22:35 / 추천 0
Query 문으로 해결할 경우 디비서버가 물리적으로 분리될 경우 Federated Engine을 쓰거나 해야 하는데...
속도상 문제가 발생할수 있습니다.

데이타 베이스를 분리하는게 옳은가 다시 한번 고려해 보는것도 좋아 보이네요.