Rumah >pangkalan data >tutorial mysql >Apakah Cara Terpantas untuk Memotong Cap Masa kepada Selang 5 Minit dalam PostgreSQL?
Memangkas Cap Masa kepada Sempadan 5-Minit Dengan Cekap dalam Postgres
Memangkas cap masa adalah penting untuk analisis temporal. Postgres menawarkan fungsi date_trunc, membolehkan kami membundarkan cap masa kepada pelbagai unit. Walau bagaimanapun, untuk memotong ke sempadan 5 minit terdekat, pendekatan yang lebih khusus diperlukan.
Lazimnya, kaedah mudah berikut digunakan:
date_trunc('hour', val) + date_part('minute', val)::int / 5 * interval '5 min'
Walau bagaimanapun, apabila prestasi kritikal, adalah penting untuk meneroka penyelesaian terpantas yang mungkin.
Pendekatan Alternatif: Menerusi Epoch Time
Pendekatan alternatif melibatkan penukaran cap masa kepada cap masa zaman dan kemudian memotongnya. Kaedah ini dinyatakan sebagai:
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
Penanda Aras dan Keputusan
Untuk menilai prestasi kedua-dua kaedah, penanda aras tidak formal telah dijalankan terhadap meja besar dengan 4 juta barisan. Pertanyaan telah diselang-seli untuk mengelakkan kelebihan caching.
Keputusan:
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 |
Kesimpulan
Anehnya, kaedah menggunakan date_trunc dan date_part secara konsisten mengatasi pendekatan masa zaman. Walaupun lebih serba boleh dan lebih mudah untuk diparameterkan, kaedah masa zaman mengorbankan beberapa prestasi untuk julat pemangkasan unit masa yang lebih luas.
Oleh itu, untuk memotong cap masa kepada sempadan 5 minit khususnya dalam Postgres, kaedah mudah menggunakan date_trunc dan date_part ialah pendekatan yang disyorkan.
Atas ialah kandungan terperinci Apakah Cara Terpantas untuk Memotong Cap Masa kepada Selang 5 Minit dalam PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!