2013-05-15 3 views
1

이벤트에 대한 타임 스탬프를 기록하는 Java 응용 프로그램이 있습니다. 내가 직면 한 문제는 종종 큰 볼륨이 있고, 자바를 사용하여 datetime을 계산하고 포맷하는 것이 성능면에서 너무 비싸다는 것이다. 결국 자동으로 current_timestamp를 사용하도록 mysql 필드를 설정했다. 이것은 내 애플 리케이션에서 큰 성능 향상을했다.mysql에 타임 스탬프를 저장하는 가장 좋은 (성능) 방법

큰 문제는 사용자의 절반이 다른 곳에서 호스팅되는 mysql 서버를 가지고 있고 시간대 설정이 다르며 변경할 수 없다는 것입니다.

양쪽에 타임 스탬프를 생성하는 방법을 찾아야하지만, 필요한 경우 성능에 맞지 않는 방식으로 올바른 시간대로 쉽게 변환해야합니다.

데이터를 삽입 할 때 서식을 지정할 필요가 없으므로 유닉스 시대를 대신 사용해 보았습니다. 성능상의 문제가 적습니다.

더 좋은 방법이 있습니까?

+2

신기원은 생성하기가 상대적으로 빠르며 다른 순간과 쉽게 비교할 수있는 시간대 중립적 인 순간 (보다 작음,보다 작음)이며 상대적으로 가까운 시간 산술은 간단합니다. 나에게 좋은 소리. –

답변

0

에 따옴표 MySQL manual :

MySQL이 저장 UTC 현재 시간대에서 타임 스탬프의 값을 변환하고, 다시 UTC에서 검색을 위해 현재 시간대. (...) [현재] 시간대는 연결 기준으로 [시스템 변수가 time_zone 인 경우] 설정할 수 있습니다.

내장형 TIMESTAMP 유형을 고집하는 것이 좋습니다. 현재 세션의 시간대는 (예 : UTC + 2) SET SESSION time_zone = '+2:00';을 발급하여 설정할 수 있습니다.

관련 문제