[개발] mysql 이 이중화 일때 사용하는 jdbc driver (spring + mybatis + mysql 환경)
mysql 은 이중화를 하게 되면 master, slave 구조로 리플리케이션으로 설정한뒤 사용하게 됩니다.
이구조일때
master 테이블은 insert,update,delete 쿼리등만 실행을 하며
slave 테이블은 select 쿼리만 실행하여
속도 향상을 꾀하게 됩니다
구성하는 방법은 http://pelican7.egloos.com/2576704 를 참고하시구요
이 부분에서 select 쿼리와 나머지 쿼리를 분류하려면 자바소스상의 작업이 필요하나
mysql 에서 제공하는 jdbc driver 를 사용하면 이런 내용이 필요가 없습니다
아래는 해당 jdbc 내용입니다.
jdbc driver :
jdbc url : jdbc:mysql:replication://마스터IP,슬레이브IP/디비명
적용시 소스..
package com.sample.dao;
import java.util.List;
import org.apache.ibatis.annotations.Select;
import org.springframework.transaction.annotation.Transactional;
import com.sample.domain.Sample;
@Transactional(readOnly=true)
public interface SampleDao {
@Select("SELECT * FROM SAMPLE")
public List<Sample> list();
@Select("SELECT * FROM SAMPLE")
@Transactional(readOnly=false)
public List<Sample> list2();
}
원래라면 리플렉션 드라이버로 얻은 jdbc connection 에서 connection.setReadOnly(true) 를 할 경우에만 slave 에서 select 해오나
spring 의 @Transactional 어노테이션으로 설정하여 해당 옵션을 설정해줌
2011-12-29 정상동작 확인
'개발' 카테고리의 다른 글
전자정부프레임워크 우편번호 다음 open api 연계 (0) | 2016.06.20 |
---|---|
[개발] sitemesh + velocity 한글 깨지는 현상 (0) | 2012.04.22 |
[개발] 이클립스 플러그인 자바 디컴파일러 주소.. (0) | 2012.04.21 |
[안드로이드] 디컴파일 하기.. (0) | 2012.04.21 |
[안드로이드] 실행을 핸드폰으로 하게 설정하기.. (0) | 2012.04.21 |