"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo puede simplificar y optimizar las horas de las consultas de operación de PostgreSQL?

¿Cómo puede simplificar y optimizar las horas de las consultas de operación de PostgreSQL?

Publicado el 2025-03-24
Navegar:166

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

cómo realizar horas de operación consultas en postgresql

complejidad de consulta original

la consulta original, previsto a identificar registros que están "abiertos" (dentro de las horas especificadas de las operaciones), fue complejo de complejos de operaciones), se necesita compleja de complejos). Donde las horas de operación pueden envolver alrededor del final de la semana. Para simplificar este proceso, adoptaremos un enfoque diferente utilizando una estructura de datos llamada tsrange .

que introduce tsrange

tsRange es un tipo de datos postgresql que representa un rango de timestamentos sin zona horaria. Proporciona una forma conveniente de almacenar y manipular intervalos de tiempo.

rediseñando la estructura de la tabla

reemplazaremos las columnas existentes (OpenS_on, Closes_on, OpenS_AT, Closes) con una sola columna llamada Horas de Type Tsrange. Horas de operación se almacenarán como un conjunto de valores TSRANGE.

Ejemplo

, por ejemplo, el siguiente valor de tsrange representa horas de operación desde el miércoles, 6 pm a jueves, 5 am:

'[1996-01-03 18:30, 1996-01-01-04 05:00] '
'[1996-01-03 18:30, 1996-01-04 05:00]'

consulta usando tsrange

Con la estructura de tabla actualizada, la consulta se vuelve mucho más simple:

select * De Hoo Donde horas @& gt; f_hoo_time (ahora ())
'[1996-01-03 18:30, 1996-01-04 05:00]'
La función f_hoo_time () convierte una marca de tiempo con zona horaria en una marca de tiempo, mientras que el operador de contención (@>) verifica si la hora actual cae dentro del rango de tiempo especificado.

Índice y rendimiento

a optimizados Recomendar crear un índice SP-GIST en la columna Horas. Este índice permite una búsqueda eficiente de rangos de tiempo, lo que resulta en un rendimiento de consulta más rápido.

conclusión

aprovechando TSRANGE y un índice SP-Chist, podemos simplificar en gran medida las horas de consulta de operación y mejorar su rendimiento. Este enfoque es más eficiente y robusto que la consulta original.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3