Heim > Datenbank > MySQL-Tutorial > Was ist der schnellste Weg, Zeitstempel in PostgreSQL auf 5-Minuten-Intervalle zu kürzen?

Was ist der schnellste Weg, Zeitstempel in PostgreSQL auf 5-Minuten-Intervalle zu kürzen?

DDD
Freigeben: 2024-12-26 12:14:10
Original
575 Leute haben es durchsucht

What's the Fastest Way to Truncate Timestamps to 5-Minute Intervals in PostgreSQL?

Effizientes Abschneiden von Zeitstempeln auf 5-Minuten-Grenzen in Postgres

Das Abschneiden von Zeitstempeln ist für die zeitliche Analyse unerlässlich. Postgres bietet die Funktion date_trunc, mit der wir Zeitstempel auf verschiedene Einheiten runden können. Für die Kürzung auf die nächste 5-Minuten-Grenze ist jedoch ein spezifischerer Ansatz erforderlich.

Normalerweise wird die folgende einfache Methode verwendet:

date_trunc('hour', val) + date_part('minute', val)::int / 5 * interval '5 min'
Nach dem Login kopieren

Wenn die Leistung jedoch kritisch ist, Es ist entscheidend, die schnellstmögliche Lösung zu finden.

Alternativer Ansatz: Durch die Epoche gehen Zeit

Ein alternativer Ansatz besteht darin, den Zeitstempel in einen Epochenzeitstempel umzuwandeln und ihn dann zu kürzen. Diese Methode wird ausgedrückt als:

SELECT to_timestamp(
    floor(EXTRACT(epoch FROM ht.time) / EXTRACT(epoch FROM interval '5 min'))
    * EXTRACT(epoch FROM interval '5 min')
) FROM huge_table AS ht LIMIT 4000000
Nach dem Login kopieren

Benchmarking und Ergebnisse

Um die Leistung beider Methoden zu bewerten, wurde ein informeller Benchmark anhand einer großen Tabelle mit 4 Millionen durchgeführt Reihen. Die Abfragen wurden abgewechselt, um Caching-Vorteile zu verhindern.

Ergebnisse:

Method Run 1 Run 3 Run 5
Epoch Time 39.368 seconds 39.526 seconds 39.883 seconds
Hour and Minute 34.189 seconds 37.028 seconds 32.397 seconds

Fazit

Überraschenderweise verwendet die Methode date_trunc und date_part übertrafen den Epochenzeit-Ansatz durchweg. Obwohl die Epochenzeitmethode vielseitiger und einfacher zu parametrisieren ist, opfert sie etwas Leistung für einen größeren Bereich von Kürzungen von Zeiteinheiten.

Daher ist für die Kürzung von Zeitstempeln auf 5-Minuten-Grenzen speziell in Postgres die unkomplizierte Methode mit date_trunc und date_part ist der empfohlene Ansatz.

Das obige ist der detaillierte Inhalt vonWas ist der schnellste Weg, Zeitstempel in PostgreSQL auf 5-Minuten-Intervalle zu kürzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage