0

クエリの例を2つ示します。

SELECT NOW(), NOW() + INTERVAL 1 HOUR + INTERVAL 1 MINUTE + INTERVAL 1 SECOND;
SELECT NOW(), ADDTIME( NOW(), '1:01:01' );

これら2つのクエリの間に何か違いはありますか?つまり、パフォーマンスまたはベストプラクティスの使用では?

私がテストした限りでは、INTERVAL実行時間が少し長いようです。

編集: 100,000ループのalmoustの結果は、常に次のようになります。

Interval:  8.5930590629578 seconds.
Addtime:   8.2951309680939 seconds.

 

SELECT NOW(), NOW() + 3661 SECOND;

Single interval:  8.3964569568634 seconds.
Interval:         9.1104879379272 seconds.
Addtime:          8.7062540054321 seconds.

EDIT2:新しい例:

SELECT NOW(), NOW() + 1 SECOND;
SELECT NOW(), ADDTIME( NOW(), '0:00:01' );

そして時間の結果:

Single interval:  8.4611599445343 seconds.
Addtime:          8.7186510562897 seconds.

ADDTIME構文解析は常にそれを非常に遅くして、違いをかなりよく見ることができますか?

4

1 に答える 1

2

本当の問題は、これが本当にあなたが探している一種のパフォーマンスの向上であるかどうかです。これを100K回実行すると、0.02秒の差が示されます。したがって、500万回実行すると、1秒節約できます。

interval3つの計算(時間/分/秒)を実行する必要があるため、2つを比較することは公平ではありません。これはそれを遅くします。

ADDTIME()時間を解析する必要があり、これも速度を低下させます。

次に、パフォーマンスを探している場合は、これを使用します。

 NOW() + INTERVAL 3661 SECOND

しかし、それでもミリ秒を節約できます。これが本当にアプリケーションのボトルネックである場合、あなたは素晴らしい仕事をしました:)。

于 2012-10-11T14:27:29.510 に答える