제목 | mysql에서 두개의 database를 사용할때 | ||
---|---|---|---|
글쓴이 | jake | 작성시각 | 2013/10/10 20:18:51 |
|
|||
안녕하세요 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
|
jake
/
2013/10/11 13:35:06 /
추천
0
감사합니다. 말씀하신대로 해보니 잘 되더군요 ㅎ
|
들국화
/
2013/10/11 14:22:35 /
추천
0
Query 문으로 해결할 경우 디비서버가 물리적으로 분리될 경우 Federated Engine을 쓰거나 해야 하는데...
속도상 문제가 발생할수 있습니다. 데이타 베이스를 분리하는게 옳은가 다시 한번 고려해 보는것도 좋아 보이네요. |
예를 든다면 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에서도 사용자가 여러 데이터베이스에 접근 권한만 있다면 쿼리를 보내는 것은 어려운 일이 아닙니다.