1

イベントのタイムスタンプを記録する Java アプリケーションがあります。私が直面した問題は、多くの場合、大量のデータが存在することであり、Java で datetime を計算してフォーマットすることは、パフォーマンスにとってコストがかかりすぎるということでした。最終的に、current_timestamp を自動的に使用するように mysql フィールドをセットアップしました。これにより、アプリのパフォーマンスが大幅に向上しました。

私が遭遇した大きな問題は、ユーザーの半数が他の場所でホストされている mysql サーバーを使用しており、タイムゾーンの設定が異なり、変更できない可能性があることです。

どちらの側でもタイムスタンプを生成する方法を見つける必要がありますが、必要に応じて、パフォーマンスに影響を与えず、正しいタイムゾーンに簡単に変換できます。

代わりに UNIX エポックを使用することを検討しました。これは、データを挿入するときにフォーマットを必要としないため、パフォーマンスの問題が少ないはずです。

より良い方法はありますか?

4

1 に答える 1

0

MySQLマニュアルを引用:

MySQL は、保存のために TIMESTAMP 値を現在のタイム ゾーンから UTC に変換し、取得のために UTC から現在のタイム ゾーンに戻します。(...) [現在の] タイム ゾーンは、[ time_zoneシステム変数を使用して] 接続ごとに設定できます。

ビルトインTIMESTAMPタイプにこだわることをお勧めします。現在のセッションのタイムゾーンは、発行することで設定できます (例: UTC+2) SET SESSION time_zone = '+2:00';

于 2013-05-15T14:44:53.647 に答える