문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
database:mysql:jdbc [2021/10/01 14:00] kwon37xi [PreparedStatement 분석] |
database:mysql:jdbc [2024/01/16 09:53] (현재) kwon37xi [sessionVariables] |
||
---|---|---|---|
줄 41: | 줄 41: | ||
* 8.0 드라이버 부터는 '' | * 8.0 드라이버 부터는 '' | ||
* '' | * '' | ||
- | |||
==== Datetime 0 ==== | ==== Datetime 0 ==== | ||
줄 55: | 줄 54: | ||
===== Replication JDBC Driver ===== | ===== Replication JDBC Driver ===== | ||
- | * 계속 사용해본 결과 **Replication Driver는 사용하지 않는 것이 좋겠다**. | + | * 계속 사용해본 결과 **Replication Driver는 사용하지 않는 것이 좋겠다 |
* Java 사용시에는 [[java: | * Java 사용시에는 [[java: | ||
* read/write 중 한쪽작업으로 몰릴 경우 Connection Pool입장에서는 어쨌든 사용중인 커넥션이므로 ping 쿼리가 다른쪽으로는 날라가지 않아서 간헐적으로 사용되는 커넥션이 끊기는 일이 발생한다. (**근본적으로 ping 없이 connection 유지 시간을 끊기는 시간보다 작게 잡는게 더 좋을것 같긴 하다**) | * read/write 중 한쪽작업으로 몰릴 경우 Connection Pool입장에서는 어쨌든 사용중인 커넥션이므로 ping 쿼리가 다른쪽으로는 날라가지 않아서 간헐적으로 사용되는 커넥션이 끊기는 일이 발생한다. (**근본적으로 ping 없이 connection 유지 시간을 끊기는 시간보다 작게 잡는게 더 좋을것 같긴 하다**) | ||
줄 61: | 줄 60: | ||
* 일반적으로 Master보다는 Slave에 커넥션이 많이 필요한데 이 드라이버를 사용하면 항상 동수의 커넥션을 맺는다. 따라서 Master에 불필요한 커넥션 수 증가가 발생한다. | * 일반적으로 Master보다는 Slave에 커넥션이 많이 필요한데 이 드라이버를 사용하면 항상 동수의 커넥션을 맺는다. 따라서 Master에 불필요한 커넥션 수 증가가 발생한다. | ||
* JVM의 메모리 점유율이 높아지는 것 같다. ReplicationDriver를 사용하면 Full GC 빈도가 더 높아지는 현상이 발견되었다. | * JVM의 메모리 점유율이 높아지는 것 같다. ReplicationDriver를 사용하면 Full GC 빈도가 더 높아지는 현상이 발견되었다. | ||
- | * ping 문제만 해결하면 사용 자체에 큰 문제는 없다. | + | * ping 문제만 해결하면 사용 자체에 큰 문제는 없다. -> 해결됨. |
- | * [[http:// | + | * [[https:// |
* Connection.setReadOnly()에 지정된 값에 따라 쓰기일 때는 마스터, 그 외에는 슬레이브로 보내는 처리를 해준다. Spring @Transactional(readOnly=" | * Connection.setReadOnly()에 지정된 값에 따라 쓰기일 때는 마스터, 그 외에는 슬레이브로 보내는 처리를 해준다. Spring @Transactional(readOnly=" | ||
* [[http:// | * [[http:// | ||
줄 74: | 줄 73: | ||
* '' | * '' | ||
* To enable this functionality, | * To enable this functionality, | ||
- | * Ping용 쿼리를 주로 '' | + | * Ping용 쿼리를 주로 '' |
* '' | * '' | ||
- | * [[http:// | + | * [[http:// |
* 관련 해결책이 5.1.27 에 나온듯. | * 관련 해결책이 5.1.27 에 나온듯. | ||
* '' | * '' | ||
줄 97: | 줄 96: | ||
* MySQL이 생성하는 모든 쿼리의 로그를 남길 수 있다. | * MySQL이 생성하는 모든 쿼리의 로그를 남길 수 있다. | ||
* '' | * '' | ||
- | * '' | + | * '' |
+ | * [[https:// | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | ==== sessionVariables ==== | ||
+ | * [[https:// | ||
+ | * connection 을 맺을 때마다 세션에 대해 '' | ||
+ | * https:// | ||
+ | === 8.x === | ||
+ | < | ||
+ | jdbc: | ||
+ | </ | ||
+ | === 7.x 이전 === | ||
+ | < | ||
+ | jdbc: | ||
+ | </ | ||
===== allowMultiQueries ===== | ===== allowMultiQueries ===== | ||
* MySQL JDBC는 기본적으로 하나의 SQL 실행 요청에 여러 SQL을 실행하는 것을 금지하고 있다.(세미콜론(; | * MySQL JDBC는 기본적으로 하나의 SQL 실행 요청에 여러 SQL을 실행하는 것을 금지하고 있다.(세미콜론(; |