Heim > Datenbank > MySQL-Tutorial > Wie kann „tsrange' von PostgreSQL Abfragen zu Betriebszeiten vereinfachen und optimieren?

Wie kann „tsrange' von PostgreSQL Abfragen zu Betriebszeiten vereinfachen und optimieren?

Patricia Arquette
Freigeben: 2025-01-04 08:44:38
Original
239 Leute haben es durchsucht

How Can PostgreSQL's `tsrange` Simplify and Optimize Hours of Operation Queries?

So führen Sie Betriebsstundenabfragen in PostgreSQL durch

Originalabfragekomplexität

Das Original Die Abfrage, die darauf abzielt, Datensätze zu identifizieren, die „offen“ sind (innerhalb der angegebenen Betriebszeiten), war komplex, da verschiedene Szenarien verarbeitet werden mussten, in denen Stunden geöffnet waren Der Betrieb könnte gegen Ende der Woche abgeschlossen sein. Um diesen Prozess zu vereinfachen, werden wir einen anderen Ansatz verfolgen und eine Datenstruktur namens tsrange verwenden.

Wir stellen vor: tsrange

tsrange ist ein Datentyp in PostgreSQL, das eine Reihe von Zeitstempeln ohne Zeitzone darstellt. Es bietet eine bequeme Möglichkeit, Zeitintervalle zu speichern und zu bearbeiten.

Neugestaltung der Tabellenstruktur

Wir werden die vorhandenen Spalten (opens_on, closes_on, open_at, closes_at) ersetzen ) mit einer einzelnen Spalte namens Stunden vom Typ tsrange. Die Betriebsstunden werden als Satz von Tsrange-Werten gespeichert.

Beispiel

Der folgende Tsrange-Wert stellt beispielsweise die Betriebsstunden von Mittwoch, 18:00 Uhr, bis Donnerstag dar , 5 Uhr:

'[1996-01-03 18:30, 1996-01-04 05:00]'
Nach dem Login kopieren

Abfrage mit tsrange

Mit der aktualisierten Tabellenstruktur wird die Abfrage viel einfacher:

SELECT *
FROM hoo
WHERE hours @> f_hoo_time(now())
Nach dem Login kopieren

Die Funktion f_hoo_time() wandelt einen Zeitstempel mit Zeitzone in einen Zeitstempel um, während der Einschlussoperator (@>) prüft, ob die aktuelle Zeit innerhalb des angegebenen Zeitbereichs liegt.

Index und Leistung

Um Abfragen mit tsrange zu optimieren, empfehlen wir die Erstellung eines SP-GiST-Index für die Stundenspalte. Dieser Index ermöglicht eine effiziente Suche nach Zeitbereichen, was zu einer schnelleren Abfrageleistung führt.

Fazit

Durch die Nutzung von tsrange und einem SP-GiST-Index können wir das erheblich vereinfachen Betriebsstunden abfragen und die Leistung verbessern. Dieser Ansatz ist effizienter und robuster als die ursprüngliche Abfrage.

Das obige ist der detaillierte Inhalt vonWie kann „tsrange' von PostgreSQL Abfragen zu Betriebszeiten vereinfachen und optimieren?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage