티스토리 뷰
Connection Pool의 사용
보통 데이터베이스를 연결해 값을 받아올 때 가장 오래걸리는 부분은
DriverManager.getConnection() 메소드로 Connection 객체를 얻는 부분이다.
WAS와 DB는 통신을 해야하기 때문이다.
특히 DB서버가 따로 분리되어 있을 때 소요되는 시간은 더욱 증가한다.
이러한 부분에서 DB서버와 연결하는 대기시간을 줄이고, 네트워크의 부담을
줄이기 위해 Connection Pool을 사용해야한다.
요즘 프레임워크에는 보통 Connection Pool이 구비되어 있다.
PreparedStatement의 사용
Statement는 PreparedStatement를 사용하는 것이 좋다.
일반 Statement를 사용하면 쿼리문장분석, 컴파일, 실행의 단계를 매번 거치게 된다.
하지만 PreparedStatement를 사용하면 캐싱을 하기 때문에 DB에 훨씬 적은 부하를 주며
높은 성능을 가질 수 있다.
또한 ?를 쓰기 때문에 가독성도 좋아지고 SQL인젝션 공격도 방지할 수 있다.
ResultSet 클래스의 last() 메소드 사용자제
last() 메소드의 수행시간은 데이터의 건수와 DB의 통신속도에 따라 다르다.
데이터가 많을수록 대기시간이 증가하기 때문에 속도차이가 심하게 날 수 밖에 없다.
행의 개수를 셀 때에는 차라리 count(*) 쿼리를 한번 더 날려 값을 받아오는 것이
성능에 더 좋다.
하지만 일부 DBMS에서는 last메소드의 성능을 개선한 것도 있기 때문에
별 차이가 없을 수도 있다.
'JAVA' 카테고리의 다른 글
[JVM] HotSpot VM의 개념 (0) | 2015.04.23 |
---|---|
[JAVA 성능개선] 예외처리를 효율적으로 (0) | 2015.04.17 |
[Web 성능개선] 태그 라이브러리를 사용할 때 유의할 점 (0) | 2015.04.17 |
[Spring 성능개선] Spring Controller에서 View객체 더 빠르게 찾기 (0) | 2015.04.17 |
[자바 성능튜닝] System.out.println의 사용을 지양하자 (0) | 2015.04.14 |
- Total
- Today
- Yesterday
- 프로세서
- javascript
- Java8
- Swift 2.0
- 메모리
- 클로저
- react
- 컴퓨터 시간
- Clojure
- rambda
- RAMDA
- 성능
- 성능개선
- 람다
- 자료구조
- json
- Jackson
- opensource
- 자바
- 알람
- Java
- 리액트
- gitlab
- 시간
- 자바 성능
- 코어
- Docker
- Stream
- 퍼포먼스
- 날짜
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |