'데이터베이스/mysql'에 해당되는 글 2건


It's a technique to allow multiple clinets to make use of a cached set of shared and reusable connection objects providing access to a database. Connection Pooling feature is supported only on J2SDK 1.4 and later releases.

Opening/Closing database connections is an expensive process and hence connection pools improve the performance of execution of commands on a database for which we maintain connection objects in the pool. It facilitates reuse of the same connection object to serve a number of client requests. Every time a client request is received, the pool is searched for an available connection object and it's highly likely that it gets a free connection object. Otherwise, either the incoming requests are queued or a new connection object is created and added to the pool (depending upon how many connections are already there in the pool and how many the particular implementation and configuration can support). As soon as a request finishes using a connection object, the object is given back to the pool from where it's assigned to one of the queued requests (based on what scheduling algorithm the particular connection pool implementation follows for serving queued requests). Since most of the requests are served using existing connection objects only so the connection pooling approach brings down the average time required for the users to wait for establishing the connection to the database.


간단히 설명하면..  풀장에 코넥션 object를 만들어 놓고 클라이언트의 요구가 올때마다 코넥션 object가 request를 받아 처리한다는 내용이다.

클라이언트의 요청이 도착할 때 마다 풀은 가용한 코넥션 오브젝트를 찾는다. 만약 못찾으면 큐에 저장되어 대기 하거나 새로운 코넥션을 만든다.,(이는 사용자 configuration에 따라 선택된다). 코넥션 풀을 사용함으로서 얻을 수 있는 효과는 일반적인 방법을 사용할때  database를 접근하기 위해 connection을 만드는 average time 을 절감 할 수 있다는 것이다.

'데이터베이스 > mysql' 카테고리의 다른 글

mysql connection pool?  (0) 2015.03.27
dmysql 사용시 timestamp와 datetime의 차이  (0) 2015.03.27
블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

TIMESTAMP만의 특성입니다.

서버의 시간에 의존(UTC에 따라 변형된다는 의미로 해석하면 될 것 같네요)
범위가 '1970-01-01 00:00:01' UTC to '2038-01-09 03:14:07' UTC로 제한됨
on update CURRENT_TIMESTAMP 옵션을 사용할 수 있다.


DATETIME은 순수하게 상수로 된 날짜로 인식한다.

그러나 TIMESTAMP는 서버시간에 의존하는 날짜 개념이다. (서버 time zone 변경시, 바뀐다)


해외서버를 사용한다면 문제를 일으킬 수 있다.


timestamp 옵션 중에 

on update CURRENT_TIMESTAMP 이건, UPDATE

옵션은 시간 update 시 시간 까지 변경해 주는 옵션이다..

하지만 지금 구현하고 있는 게시판은 수정시 시간 업데이트를 쓰지 않는다 .


이러한 특성 때문에 클라이언트 시간을 받아서 서버에 저장하는 경우 TIMESTAMP 보다는 DATETIME을 쓰는 것이 좋을 수 있다.


추가로 업데이트시 아래와 같은 방법으로도 구현할 수 있다는데..업데이트시에도 클라이언트에서 now()로 삽입하면 되지 않을까?

여러가지 방법이 있는 듯 하다.

등록시간은 DATETIME으로 잡고, 수정시간은 TIMESTAMP on update CURRENT_TIMESTAMP로 사용하면, 편할 거 같다는 생각이 듭니다. 물론 UTC나 timezone에 영향은 고려해야겠지요.



cf. 참고로 datetime 이나 date 사용시 now로 저장 뒤에 select를 하면 제멋대로인 포맷으로 출력이 된다. 이럴경우 date_format()함수를 써서 alias로 컬럼을 지정해서 뽑아내는 방법이 유용하다. ex) date_format(time,%Y-%m-%d %h-%i %p 

year month day hour i? pm am 구분..

'데이터베이스 > mysql' 카테고리의 다른 글

mysql connection pool?  (0) 2015.03.27
dmysql 사용시 timestamp와 datetime의 차이  (0) 2015.03.27
블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.